56484 Commits

Author SHA1 Message Date
Chris Lattner
efdc572e44 Rearrange handling of jump tables. Highlights:
1. MachineJumpTableInfo is now created lazily for a function the first time
   it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
   MachineJumpTableInfo::JTEntryKind enum.  This enum is determined by the
   TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
   throughout the compiler that "knows" that jump table entries are always
   32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
   their kind, instead of at machinefunction creation time.

Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.

llvm-svn: 94470
2010-01-25 23:26:13 +00:00
Chris Lattner
e3f214b438 prep work to support a future where getJumpTableInfo will return
a null pointer for functions with no jump tables.  No functionality
change.

llvm-svn: 94469
2010-01-25 23:22:00 +00:00
Chris Lattner
00ba9a5343 add a method to get the alignment of an integer type even
when we don't have one laying around.  Useful if you don't
have an llvmcontext handy.

llvm-svn: 94468
2010-01-25 23:18:11 +00:00
Johnny Chen
9ff21f3121 Make it SP, LR, PC for GPR Register Class instead of LR, SP, PC.
llvm-svn: 94465
2010-01-25 22:54:29 +00:00
Chris Lattner
1e05dd3446 eliminate redundant argument to EmitJumpTableInfo
llvm-svn: 94464
2010-01-25 22:41:33 +00:00
Johnny Chen
40f1246038 Implemented ARMInstPrinter::printThumbS4ImmOperand().
llvm-svn: 94457
2010-01-25 22:13:10 +00:00
Sean Callanan
4dbe558a10 Implemented the dialect decision logic for the X86
TargetAsmLexer.  Dialect-specific lexing code will
be placed in the functions LexTokenATT() and
LexTokenIntel().

llvm-svn: 94456
2010-01-25 21:59:20 +00:00
Johnny Chen
4facdb7d00 Fixed the order of GPR RegisterClass regs to be: ..., R10, R11, R12, ...
llvm-svn: 94455
2010-01-25 21:56:35 +00:00
Dan Gohman
18bbc20ac8 Fix the bitcode reader to deserialize nuw/nsw/etc. bits properly in the case
of a forward-reference, which doesn't use an "abbrev" encoding.

llvm-svn: 94454
2010-01-25 21:55:39 +00:00
Chris Lattner
3559d9a38a mcstreamerize gprel32 emission.
llvm-svn: 94452
2010-01-25 21:28:50 +00:00
Bob Wilson
e3d00b2e56 Remove check for an impossible condition: the condition of the while loop has
already checked that TmpBB->getSinglePredecessor() is non-null.

llvm-svn: 94451
2010-01-25 21:28:05 +00:00
Chris Lattner
151c0e8669 mcize the non-gprel cases of AsmPrinter::printPICJumpTableEntry
llvm-svn: 94450
2010-01-25 21:22:22 +00:00
Chris Lattner
27d1a6fed5 handle the _set_ symbol with an MCSymbol.
llvm-svn: 94449
2010-01-25 21:17:10 +00:00
Chris Lattner
ac1144c110 rename MAI::PICJumpTableDirective to MAI::GPRel32Directive to
make it clear what it is, instead of how it is used.

llvm-svn: 94448
2010-01-25 21:10:10 +00:00
Chris Lattner
ee2163758e pull the non-pic jump table case out of printPICJumpTableEntry
and MCize the non-pic case.  Now printPICJumpTableEntry really
is just about printing PIC entries.

llvm-svn: 94446
2010-01-25 21:01:58 +00:00
Chris Lattner
fafb52a75a remove JumpTableDirective, it is always null.
llvm-svn: 94445
2010-01-25 20:52:54 +00:00
Chris Lattner
b05aa7f639 no need to implement these.
llvm-svn: 94443
2010-01-25 20:37:36 +00:00
Chris Lattner
1e1d7ad2f8 mcize jump table symbol manipulation.
llvm-svn: 94441
2010-01-25 19:51:38 +00:00
Chris Lattner
1cd2ba1c3a sink an arm specific method out of asmprinter into the ARMAsmPrinter and
rename it to avoid shadowing.

llvm-svn: 94440
2010-01-25 19:39:52 +00:00
Chris Lattner
fc056d77e4 remove dead code: the x86 target never sets usesGlobalOffsetTable,
even on x86-32/elf which uses a GOT.

llvm-svn: 94439
2010-01-25 19:23:04 +00:00
Chris Lattner
5f919913e8 wirte up .file and .file to the mc asmparser.
llvm-svn: 94438
2010-01-25 19:02:58 +00:00
Chris Lattner
20d89c382c mcstreamerize .file and .file. This also fixes an issue where the
normal form of .file would fail if the filename had a weird character
in it.

llvm-svn: 94437
2010-01-25 18:58:59 +00:00
Chris Lattner
4746185ef2 emit ELF .type directives through MCStreamer instead of doing it textually.
llvm-svn: 94436
2010-01-25 18:33:40 +00:00
Chris Lattner
7a5c8c15bd add symbol attribute support for the ELF .type directive.
llvm-svn: 94435
2010-01-25 18:30:45 +00:00
Bob Wilson
1882fba746 Change Value::getUnderlyingObject to have the MaxLookup value specified as a
parameter with a default value, instead of just hardcoding it in the
implementation.  The limit of MaxLookup = 6 was introduced in r69151 to fix
a performance problem with O(n^2) behavior in instcombine, but the scalarrepl
pass is relying on getUnderlyingObject to go all the way back to an AllocaInst.
Making the limit part of the method signature makes it clear that by default
the result is limited and should help avoid similar problems in the future.
This fixes pr6126.

llvm-svn: 94433
2010-01-25 18:26:54 +00:00
Victor Hernandez
253c09eb8f Revert r94260 until findDbgDeclare() is made more efficient
llvm-svn: 94432
2010-01-25 17:52:13 +00:00
Rafael Espindola
575697fd65 Update test for darwin.
llvm-svn: 94421
2010-01-25 15:32:10 +00:00
Chris Lattner
30a253067e add a comment
llvm-svn: 94417
2010-01-25 07:53:05 +00:00
Chris Lattner
9834b7f300 emit the .size directive for global variables on ELF through
mcstreamer.

llvm-svn: 94416
2010-01-25 07:52:13 +00:00
Chris Lattner
2020423588 we removed support for darwin8 tools.
llvm-svn: 94414
2010-01-25 07:43:40 +00:00
Chris Lattner
474395e815 all supported target now have aligned common support.
llvm-svn: 94413
2010-01-25 07:29:13 +00:00
Chris Lattner
355085f393 Remove support for i386 tiger tools for aligned common symbols.
Previously we would just silently miscompile code that used aligned
common's, now at least you'll get a build error.  tiger-ppc already
triggered the build error because it didn't have a version of this
logic.

llvm-svn: 94412
2010-01-25 07:26:17 +00:00
Chris Lattner
3db729e661 don't set value to its default.
llvm-svn: 94411
2010-01-25 07:23:14 +00:00
Chris Lattner
0b42d3ef45 coff targets support alignment on .comm
llvm-svn: 94410
2010-01-25 07:20:44 +00:00
Jim Grosbach
4f713bf0fb ARM does accept the .comm directive alignment.
llvm-svn: 94408
2010-01-25 04:59:07 +00:00
Eric Christopher
0f43b92584 Fix autoconf llvm srcdir location for generic projects.
Patch by Torvald Riegel!

llvm-svn: 94405
2010-01-25 04:10:28 +00:00
Rafael Espindola
82a8b3efd4 Fix PR6134.
We are not emitting alignments on Darwin for "bar". Not sure what is the
correct way to do it.

llvm-svn: 94400
2010-01-25 02:27:39 +00:00
Daniel Dunbar
c1df55e99c Attempt to unbreak test on Linux. Chris, please check.
llvm-svn: 94399
2010-01-25 00:54:13 +00:00
Daniel Dunbar
003c6aca1c This example requires RTTI.
llvm-svn: 94398
2010-01-25 00:45:01 +00:00
Chris Lattner
e04db98cdd linux/ppc does use alignment in bytes, not pow-2. This fixes PR6129.
It looks like linux/arm and linux/mips have the same setting, which 
are probably wrong.  Someone who cares about ARM and MIPS should 
investigate with the testcase in PR6129.

llvm-svn: 94381
2010-01-24 20:54:45 +00:00
Chris Lattner
bf8495a08e don't reset the default.
llvm-svn: 94380
2010-01-24 20:53:12 +00:00
Chris Lattner
5a57121631 make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.
llvm-svn: 94378
2010-01-24 20:43:08 +00:00
Chris Lattner
397d34f06b mark some libraries that currently require RTTI.
llvm-svn: 94377
2010-01-24 20:22:08 +00:00
Chris Lattner
e753847267 libs that need EH need RTTI.
llvm-svn: 94376
2010-01-24 20:21:50 +00:00
Chris Lattner
c0335bacb4 ENABLE_EXPENSIVE_CHECKS shouldn't know how rtti is enabled, let REQUIRES_RTTI handle it.
llvm-svn: 94375
2010-01-24 20:20:40 +00:00
Chris Lattner
82318209c4 reassociate should do this.
llvm-svn: 94374
2010-01-24 20:17:09 +00:00
Chris Lattner
e328ab9a00 add a note.
llvm-svn: 94373
2010-01-24 20:01:41 +00:00
Chris Lattner
6fdaf12267 just remove this test, it is not reduced, is not clear what its testing for and
it is dying due to fragility in the asmprinter .s comments.

llvm-svn: 94372
2010-01-24 19:23:09 +00:00
Chris Lattner
9cb699ec58 this test has been failing or a long time, just disable it for now to get
back to green.

llvm-svn: 94371
2010-01-24 19:13:39 +00:00
Chris Lattner
0dde21dba4 fix some issues where we weren't emitting enough newlines.
llvm-svn: 94370
2010-01-24 19:01:06 +00:00