Daniel Dunbar [Tue, 11 Aug 2009 04:34:48 +0000 (04:34 +0000)]
llvm-mc: Honor -o option (and add -f).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78640
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 Aug 2009 04:24:50 +0000 (04:24 +0000)]
llvm-mc: Sketch parsing for .file, .line, and .loc. No streamer hooks for these
yet (I'm not even sure what they do).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78639
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 Aug 2009 03:42:33 +0000 (03:42 +0000)]
llvm-mc: Fix darwin .section parsing. It was skipping the section name and a ','
(and outputting a diagnostic pointing at the wrong place), all of which lead to
much confusion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78637
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 11 Aug 2009 02:59:53 +0000 (02:59 +0000)]
llvm-mc/AsmParser: Implement automatic classification of RegisterClass operands.
- This drops us to 123 ambiguous instructions (previously ~500) on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78636
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Tue, 11 Aug 2009 01:51:55 +0000 (01:51 +0000)]
Fixed more problems caused by 78142.
Passing of indirect arguments starts after return value on the callee's frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78635
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 11 Aug 2009 01:44:26 +0000 (01:44 +0000)]
Replace DOUT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78634
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 11 Aug 2009 01:15:26 +0000 (01:15 +0000)]
Use new EVT::vAny type to combine Neon intrinsics for VPADD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78632
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 11 Aug 2009 01:14:02 +0000 (01:14 +0000)]
Add a new overloaded EVT::vAny type for use in TableGen to allow intrinsic
arguments that are vectors of any size and element type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78631
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 11 Aug 2009 01:09:06 +0000 (01:09 +0000)]
Added the x86 INT instructions; both the special-case INT 3 and the general-case
INT i8. These instructions are only for interpretation by disassemblers, not
for emission, so they do not as yet have patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78630
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 11 Aug 2009 01:07:38 +0000 (01:07 +0000)]
Fix bug in NEON convert for single-precision FP. This also fixes the tblgen warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78629
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 11 Aug 2009 00:59:39 +0000 (00:59 +0000)]
Lay the groundwork for my upcoming ilist sentinel shrinking patch
by defining a LLVM_COMPACT_SENTINELS symbol to 0 or 1 in config.h.
I'm asking for 3 favors:
- may an autofoo expert look at this and suggest improvements?
- may a cmake expert suggest analogous functionality for config.h?
- may somebody with the right autofoo mix regenerate configure? (mine is too new)
Thanks!
--This line, and those below, will be ignored--
M configure.ac
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78628
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 11 Aug 2009 00:20:00 +0000 (00:20 +0000)]
Add stdlib.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78627
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 11 Aug 2009 00:09:57 +0000 (00:09 +0000)]
SjLj based exception handling unwinding support. This patch is nasty, brutish
and short. Well, it's kinda short. Definitely nasty and brutish.
The front-end generates the register/unregister calls into the SjLj runtime,
call-site indices and landing pad dispatch. The back end fills in the LSDA
with the call-site information provided by the front end. Catch blocks are
not yet implemented.
Built on Darwin and verified no llvm-core "make check" regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 23:56:04 +0000 (23:56 +0000)]
Enable Thumb2 instruction shrinking (32-bit to 16-bit) pass. Convert a bunch of thumb2 tests to FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78622
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 10 Aug 2009 23:43:28 +0000 (23:43 +0000)]
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 Aug 2009 23:43:19 +0000 (23:43 +0000)]
Fix a bug in the DAGCombiner's handling of multiple linked
MERGE_VALUES nodes. Replacing the result values with the
operands in one MERGE_VALUES node may cause another
MERGE_VALUES node be CSE'd with the first one, and bring
its uses along, so that the first one isn't dead, as this
code expects. Fix this by iterating until the node is
really dead. This fixes PR4699.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78619
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 Aug 2009 23:15:10 +0000 (23:15 +0000)]
Fix a bug where DAGCombine was producing an illegal ConstantFP
node after legalize, and remove the workaround code from the
ARM backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78615
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 23:14:14 +0000 (23:14 +0000)]
Use FileCheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78614
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 23:06:57 +0000 (23:06 +0000)]
Use FileCheck... its good for you...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78613
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 22:59:46 +0000 (22:59 +0000)]
Remove MDNode from ValueMap when MDNode is destroyed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78612
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 22:58:08 +0000 (22:58 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78611
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 22:56:29 +0000 (22:56 +0000)]
Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78610
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 10 Aug 2009 22:37:37 +0000 (22:37 +0000)]
Whitespace, 80-column, and isTwoAddress -> Constraints = "" changes.
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78608
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 22:31:31 +0000 (22:31 +0000)]
Rename MDNodeSet as MDNodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78607
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 22:31:04 +0000 (22:31 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78606
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 22:20:38 +0000 (22:20 +0000)]
Align comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78605
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 22:17:39 +0000 (22:17 +0000)]
Use NEON for single-precision int<->FP conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78604
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 22:11:20 +0000 (22:11 +0000)]
Do not rely on magic "llvm.dbg.*" global variable name to find debug info.
PIC16 developers, please verify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78603
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 22:09:58 +0000 (22:09 +0000)]
Keep track of DIType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78602
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 21:49:45 +0000 (21:49 +0000)]
Remove a bunch of debugging code that was slowing PBQP down by 25% or so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78601
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 10 Aug 2009 21:48:58 +0000 (21:48 +0000)]
Fix up whitespace, remove commented out code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78600
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 21:06:41 +0000 (21:06 +0000)]
llvm-mc/AsmParser: Disambiguate i64i8imm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78598
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 21:00:45 +0000 (21:00 +0000)]
llvm-mc/AsmParser: Allow .td users to redefine the names of the methods to call
on target specific operands for testing class membership and converting to
MCInst operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78597
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 20:56:46 +0000 (20:56 +0000)]
Rename ConvertType to ConvertConstant to avoid a name conflict on llvm-gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78596
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 20:46:15 +0000 (20:46 +0000)]
SimpleValueType-ify a few more methods on TargetLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78595
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 20:25:59 +0000 (20:25 +0000)]
Handle the constantfp created during post-legalization dag combiner phase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78594
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 20:18:46 +0000 (20:18 +0000)]
Continue the SimpleValueType-ification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78593
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Mon, 10 Aug 2009 19:45:05 +0000 (19:45 +0000)]
Fix ocaml "make check" tests, that wasn't finding the proper c++ compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78592
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Mon, 10 Aug 2009 19:45:00 +0000 (19:45 +0000)]
Fix comment in llvm.mli.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78591
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Mon, 10 Aug 2009 19:44:53 +0000 (19:44 +0000)]
Convert comments to C90-style so llvm-c can import DataTypes.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78590
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Mon, 10 Aug 2009 19:44:45 +0000 (19:44 +0000)]
Fix docstring for ocaml binding's const_float.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78589
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 19:08:50 +0000 (19:08 +0000)]
llvm-mc/AsmMatcher: Remove some code which has been obsoleted by move to
explicit parser match classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78588
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 19:08:02 +0000 (19:08 +0000)]
llvm-mc/AsmMatcher: Fix thinko, Mem isn't a subclass of Imm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78587
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 18:59:07 +0000 (18:59 +0000)]
We are not using FoldingSet for metadata uniquing anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78585
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 18:56:59 +0000 (18:56 +0000)]
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78584
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 18:41:10 +0000 (18:41 +0000)]
llvm-mc/AsmMatcher: Change assembler parser match classes to their own record
structure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78581
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 10 Aug 2009 18:27:33 +0000 (18:27 +0000)]
g++ 4.0 doesn't have std::vector::data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78579
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 10 Aug 2009 18:16:08 +0000 (18:16 +0000)]
Change the MDNode uniquing to a ValueMap, at Devang's request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78577
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 18:15:01 +0000 (18:15 +0000)]
split MachO section handling stuff out to its out .h/.cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78576
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 18:05:55 +0000 (18:05 +0000)]
add a fixme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78575
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 18:02:16 +0000 (18:02 +0000)]
arm only needs to emit one .align directive for hidden nlp's, not one
per pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78574
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 18:01:34 +0000 (18:01 +0000)]
make sure that arm nonlazypointers are aligned properly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78573
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 17:58:51 +0000 (17:58 +0000)]
Fix a weird ppc64-specific link error during an llvm-gcc build:
ld: bad offset (0x00000091) for lo14 instruction pic-base fix-up in ___popcountdi2 from libgcc/./_popcountsi2_s.o
The problem is that the non lazy symbol pointers need to be 8 byte aligned
on ppc64 and .section doesn't have an implicit alignment like ".non_lazy_symbol_pointer"
does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78572
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 17:35:42 +0000 (17:35 +0000)]
fix some warnings for the MSVC build, by Yonggang Luo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78571
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 Aug 2009 16:50:32 +0000 (16:50 +0000)]
Make this comment more closely reflect the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78569
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 10 Aug 2009 16:48:40 +0000 (16:48 +0000)]
Add nounwind keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78568
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 10 Aug 2009 16:38:07 +0000 (16:38 +0000)]
Add support for printing loop structure information in asm comments.
This definitely slows down asm output so put it under an -asm-exuberant
flag.
This information is useful when doing static analysis of performance
issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78567
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 10 Aug 2009 16:37:29 +0000 (16:37 +0000)]
Clarify limitations of a ModulePass requiring a FunctionPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78566
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 16:05:47 +0000 (16:05 +0000)]
llvm-mc/AsmParser: Check for matches with super classes when matching
instruction operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78565
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 15:56:13 +0000 (15:56 +0000)]
Checkpoint scheduling itinerary changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78564
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Mon, 10 Aug 2009 15:55:25 +0000 (15:55 +0000)]
Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78563
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 08:10:13 +0000 (08:10 +0000)]
Watch out for empty BB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78562
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 07:58:45 +0000 (07:58 +0000)]
rev, rev16, and revsh do not set CPSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78561
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 07:20:37 +0000 (07:20 +0000)]
Duh. Most 16-bit Thumb rr instructions are two-address. Fix table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78560
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 06:57:42 +0000 (06:57 +0000)]
CPSR can be livein; transfer predicate operands correctly; tMUL is two-address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78559
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 06:32:05 +0000 (06:32 +0000)]
Add support for folding loads / stores into 16-bit moves used by Thumb2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78558
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 05:51:48 +0000 (05:51 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78557
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 05:49:43 +0000 (05:49 +0000)]
Use tMOVgpr2gpr instead of t2MOVr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78556
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 10 Aug 2009 03:36:26 +0000 (03:36 +0000)]
Add support for a user supplied pointer argument to llvm_install_error_handler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78553
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 10 Aug 2009 03:32:40 +0000 (03:32 +0000)]
Move ConstantExpr handling to ResolveConstantExpr method and also
add support for PtrToInt, Add, Mul.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78552
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 02:37:24 +0000 (02:37 +0000)]
Add support to reduce most of 32-bit Thumb2 arithmetic instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78550
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 10 Aug 2009 02:06:53 +0000 (02:06 +0000)]
Always use the 16-bit tMOVgpr2gpr instead of the 32-bit t2MOVr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78549
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 01:39:42 +0000 (01:39 +0000)]
Make the big switch: Change MCSectionMachO to represent a section *semantically*
instead of syntactically as a string. This means that it keeps track of the
segment, section, flags, etc directly and asmprints them in the right format.
This also includes parsing and validation support for llvm-mc and
"attribute(section)", so we should now start getting errors about invalid
section attributes from the compiler instead of the assembler on darwin.
Still todo:
1) Uniquing of darwin mcsections
2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h]
3) there are a few FIXMEs, for example what is the syntax to get the
S_GB_ZEROFILL segment type?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78547
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 10 Aug 2009 00:44:02 +0000 (00:44 +0000)]
add a simple back() method to StringRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78544
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 9 Aug 2009 22:37:07 +0000 (22:37 +0000)]
Use abs64 instead abs; some platforms don't have a 64-bit abs overload. Noticed by Yonggang Luo!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78543
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 9 Aug 2009 19:17:19 +0000 (19:17 +0000)]
Add support to convert 32-bit instructions to 16-bit non-two-address ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78540
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 9 Aug 2009 15:31:10 +0000 (15:31 +0000)]
always end a section with \n on elf.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78534
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 08:23:23 +0000 (08:23 +0000)]
llvm-mc/AsmParser: Fix thinko in ClassInfo::operator<.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78533
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 08:19:00 +0000 (08:19 +0000)]
llvm-mc/AsmParser: Add hack to ignore Int_* and *_Int instructions for now, to
make it easier to see interesting ambiguities.
- Also, check that user doesn't try to redefine the super class. This is a wart
in the current design, in that assembler match classes aren't explicitly
declared somewhere (so there isn't a unique place to declare the super
class). This should probably be fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78532
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 07:35:56 +0000 (07:35 +0000)]
Disable this test for now, we don't check for super classes when matching yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78531
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 07:20:21 +0000 (07:20 +0000)]
llvm-mc/AsmParser: Implement user defined super classes.
- We can now discriminate SUB32ri8 from SUB32ri, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78530
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 9 Aug 2009 06:48:29 +0000 (06:48 +0000)]
Add tests for Neon VZIP and VUZP instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78529
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 9 Aug 2009 06:30:46 +0000 (06:30 +0000)]
Add a test for Neon VTRN instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78528
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 06:05:33 +0000 (06:05 +0000)]
llvm-mc/AsmParser: Separate instruction ordering for ambiguity detection.
- We want the ordering operation to be simple, since we run it on every
match. The old ordering is also not a strict weak ordering when there are
ambiguities, which makes MSVC unhappy.
- While we are at it, detect all ambiguities instead of just the adjacent
ones. There are actually 655, for X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78526
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sun, 9 Aug 2009 06:03:09 +0000 (06:03 +0000)]
Change Neon table lookup (VTBL) and table extension (VTBX) intrinsics to
take the table vectors as separate arguments, instead of the previous
approach where they were combined into one big vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78525
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 06:00:04 +0000 (06:00 +0000)]
Extend comment on ParserMatchClass .td field, and add some missing
classes for X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78524
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 05:18:30 +0000 (05:18 +0000)]
llvm-mc/AsmParser: Define match classes in the .td file.
-2 FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78523
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 04:00:06 +0000 (04:00 +0000)]
llvm-mc/AsmParser: Sketch infrastructure for ordering instructions & detecting
ambiguities.
- Currently there are 483 ambiguities to resolve. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78522
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 9 Aug 2009 03:36:59 +0000 (03:36 +0000)]
STLExtras: Add less_ptr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 23:43:55 +0000 (23:43 +0000)]
fix edito
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78520
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 8 Aug 2009 23:43:16 +0000 (23:43 +0000)]
llvm-mc/AsmMatcher: Tweak string matcher (missed a newline).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78518
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 23:39:42 +0000 (23:39 +0000)]
sink the 'name' and 'isdirective' state out of MCSection into its derived classes.
This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78517
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 8 Aug 2009 23:10:41 +0000 (23:10 +0000)]
Use subclassing to print lane-like immediates (w/o hash) eliminating
'no_hash' modifier. Hopefully this will make Daniel happy :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78514
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 8 Aug 2009 22:57:25 +0000 (22:57 +0000)]
llvm-mc/AsmMatcher: Tweak string matcher.
- Track whether we need to insert an explicit 'break'.
- Invert conditional when matching a single prefix to reduce
nesting/bracing/breaking.
- wc -l of X86GenAsmMatcher.inc decreased by 10%. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78513
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 22:56:37 +0000 (22:56 +0000)]
remove nondeterminstic test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78512
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 22:46:59 +0000 (22:46 +0000)]
add a note about dead zero extends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78511
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 22:41:53 +0000 (22:41 +0000)]
1. Make MCSection an abstract class.
2. Move section switch printing to MCSection virtual method which takes a
TAI. This eliminates textual formatting stuff from TLOF.
3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and
TLOFELF::AtIsCommentChar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78510
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 8 Aug 2009 22:38:48 +0000 (22:38 +0000)]
switch this to create coff sections for now, it doesn't really matter for
llvm-mc's purpose yet and we'll want to switch to creating semantic sections
at some point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78509
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 8 Aug 2009 21:55:08 +0000 (21:55 +0000)]
Add crc32 instruction and intrinsics. Add a new class of prefix
bytes for F2 0F 38 and propagate. Add a FIXME for a set
of possibilities which correspond to intrinsics already used.
New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78508
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 8 Aug 2009 21:42:22 +0000 (21:42 +0000)]
Add support for READCYCLECOUNTER in Blackfin back-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78506
91177308-0d34-0410-b5e6-
96231b3b80d8