Daniel Dunbar
749ff1de5a
llvm-mc/AsmMatcher: Change assembler parser match classes to their own record
...
structure.
llvm-svn: 78581
2009-08-10 18:41:10 +00:00
Benjamin Kramer
2d14670d93
g++ 4.0 doesn't have std::vector::data.
...
llvm-svn: 78579
2009-08-10 18:27:33 +00:00
Owen Anderson
4cd02c843b
Change the MDNode uniquing to a ValueMap, at Devang's request.
...
llvm-svn: 78577
2009-08-10 18:16:08 +00:00
Chris Lattner
3e6da637f6
split MachO section handling stuff out to its out .h/.cpp file.
...
llvm-svn: 78576
2009-08-10 18:15:01 +00:00
Chris Lattner
f14da636ad
add a fixme
...
llvm-svn: 78575
2009-08-10 18:05:55 +00:00
Chris Lattner
7abff8fdb4
arm only needs to emit one .align directive for hidden nlp's, not one
...
per pointer.
llvm-svn: 78574
2009-08-10 18:02:16 +00:00
Chris Lattner
b89551026b
make sure that arm nonlazypointers are aligned properly
...
llvm-svn: 78573
2009-08-10 18:01:34 +00:00
Chris Lattner
49b8a24b7e
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.
llvm-svn: 78572
2009-08-10 17:58:51 +00:00
Chris Lattner
7ee4b3a2c0
fix some warnings for the MSVC build, by Yonggang Luo!
...
llvm-svn: 78571
2009-08-10 17:35:42 +00:00
Dan Gohman
bac3301ce4
Make this comment more closely reflect the code.
...
llvm-svn: 78569
2009-08-10 16:50:32 +00:00
Dan Gohman
fe048746c2
Add nounwind keywords.
...
llvm-svn: 78568
2009-08-10 16:48:40 +00:00
David Greene
91e0e06670
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.
llvm-svn: 78567
2009-08-10 16:38:07 +00:00
Devang Patel
cb0d71ad91
Clarify limitations of a ModulePass requiring a FunctionPass.
...
llvm-svn: 78566
2009-08-10 16:37:29 +00:00
Daniel Dunbar
5ae2827607
llvm-mc/AsmParser: Check for matches with super classes when matching
...
instruction operands.
llvm-svn: 78565
2009-08-10 16:05:47 +00:00
David Goodwin
b2f53ed68a
Checkpoint scheduling itinerary changes.
...
llvm-svn: 78564
2009-08-10 15:56:13 +00:00
David Goodwin
3245141543
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.
...
llvm-svn: 78563
2009-08-10 15:55:25 +00:00
Evan Cheng
0a08d1bb9c
Watch out for empty BB.
...
llvm-svn: 78562
2009-08-10 08:10:13 +00:00
Evan Cheng
1ecffadc8d
rev, rev16, and revsh do not set CPSR.
...
llvm-svn: 78561
2009-08-10 07:58:45 +00:00
Evan Cheng
87030de948
Duh. Most 16-bit Thumb rr instructions are two-address. Fix table.
...
llvm-svn: 78560
2009-08-10 07:20:37 +00:00
Evan Cheng
e76bc4a520
CPSR can be livein; transfer predicate operands correctly; tMUL is two-address.
...
llvm-svn: 78559
2009-08-10 06:57:42 +00:00
Evan Cheng
b0a0b99918
Add support for folding loads / stores into 16-bit moves used by Thumb2.
...
llvm-svn: 78558
2009-08-10 06:32:05 +00:00
Evan Cheng
b05ad1d066
80 col violation.
...
llvm-svn: 78557
2009-08-10 05:51:48 +00:00
Evan Cheng
f54e50e4e8
Use tMOVgpr2gpr instead of t2MOVr.
...
llvm-svn: 78556
2009-08-10 05:49:43 +00:00
Daniel Dunbar
86ddd268b4
Add support for a user supplied pointer argument to llvm_install_error_handler.
...
llvm-svn: 78553
2009-08-10 03:36:26 +00:00
Bruno Cardoso Lopes
5347f22cb1
Move ConstantExpr handling to ResolveConstantExpr method and also
...
add support for PtrToInt, Add, Mul.
llvm-svn: 78552
2009-08-10 03:32:40 +00:00
Evan Cheng
ad380aa97a
Add support to reduce most of 32-bit Thumb2 arithmetic instructions.
...
llvm-svn: 78550
2009-08-10 02:37:24 +00:00
Evan Cheng
09cacea9fb
Always use the 16-bit tMOVgpr2gpr instead of the 32-bit t2MOVr.
...
llvm-svn: 78549
2009-08-10 02:06:53 +00:00
Chris Lattner
cc70d578be
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?
llvm-svn: 78547
2009-08-10 01:39:42 +00:00
Chris Lattner
e024b843cd
add a simple back() method to StringRef.
...
llvm-svn: 78544
2009-08-10 00:44:02 +00:00
Benjamin Kramer
259a140521
Use abs64 instead abs; some platforms don't have a 64-bit abs overload. Noticed by Yonggang Luo!
...
llvm-svn: 78543
2009-08-09 22:37:07 +00:00
Evan Cheng
390e1927bf
Add support to convert 32-bit instructions to 16-bit non-two-address ones.
...
llvm-svn: 78540
2009-08-09 19:17:19 +00:00
Chris Lattner
4415a43b2f
always end a section with \n on elf.
...
llvm-svn: 78534
2009-08-09 15:31:10 +00:00
Daniel Dunbar
4a1dbf6b74
llvm-mc/AsmParser: Fix thinko in ClassInfo::operator<.
...
llvm-svn: 78533
2009-08-09 08:23:23 +00:00
Daniel Dunbar
0984b029f8
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.
llvm-svn: 78532
2009-08-09 08:19:00 +00:00
Daniel Dunbar
7c61d93b42
Disable this test for now, we don't check for super classes when matching yet.
...
llvm-svn: 78531
2009-08-09 07:35:56 +00:00
Daniel Dunbar
15e6a41728
llvm-mc/AsmParser: Implement user defined super classes.
...
- We can now discriminate SUB32ri8 from SUB32ri, for example.
llvm-svn: 78530
2009-08-09 07:20:21 +00:00
Bob Wilson
8b13d5c8e3
Add tests for Neon VZIP and VUZP instructions.
...
llvm-svn: 78529
2009-08-09 06:48:29 +00:00
Bob Wilson
06b61e2598
Add a test for Neon VTRN instructions.
...
llvm-svn: 78528
2009-08-09 06:30:46 +00:00
Daniel Dunbar
1d76f6d593
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.
llvm-svn: 78526
2009-08-09 06:05:33 +00:00
Bob Wilson
326491672e
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.
llvm-svn: 78525
2009-08-09 06:03:09 +00:00
Daniel Dunbar
5a6c69d37d
Extend comment on ParserMatchClass .td field, and add some missing
...
classes for X86.
llvm-svn: 78524
2009-08-09 06:00:04 +00:00
Daniel Dunbar
dff8502076
llvm-mc/AsmParser: Define match classes in the .td file.
...
-2 FIXMEs.
llvm-svn: 78523
2009-08-09 05:18:30 +00:00
Daniel Dunbar
1785cfe884
llvm-mc/AsmParser: Sketch infrastructure for ordering instructions & detecting
...
ambiguities.
- Currently there are 483 ambiguities to resolve. :)
llvm-svn: 78522
2009-08-09 04:00:06 +00:00
Daniel Dunbar
ff95e6d5f8
STLExtras: Add less_ptr.
...
llvm-svn: 78521
2009-08-09 03:36:59 +00:00
Chris Lattner
681f6ab2e1
fix edito
...
llvm-svn: 78520
2009-08-08 23:43:55 +00:00
Daniel Dunbar
1b075b4a8b
llvm-mc/AsmMatcher: Tweak string matcher (missed a newline).
...
llvm-svn: 78518
2009-08-08 23:43:16 +00:00
Chris Lattner
9e2c3aa666
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!! ;-)
llvm-svn: 78517
2009-08-08 23:39:42 +00:00
Anton Korobeynikov
44fa9f179c
Use subclassing to print lane-like immediates (w/o hash) eliminating
...
'no_hash' modifier. Hopefully this will make Daniel happy :)
llvm-svn: 78514
2009-08-08 23:10:41 +00:00
Daniel Dunbar
50e3d6ae53
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%. :)
llvm-svn: 78513
2009-08-08 22:57:25 +00:00
Chris Lattner
888b0d483c
remove nondeterminstic test.
...
llvm-svn: 78512
2009-08-08 22:56:37 +00:00