1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
Commit Graph

48391 Commits

Author SHA1 Message Date
Bill Wendling
ee38e4e012 Mark as fall through.
llvm-svn: 75652
2009-07-14 18:30:04 +00:00
Chris Lattner
6ec578688d Reapply my previous asmprinter changes now with more testing and two
additional bug fixes:

1. The bug that everyone hit was a problem in the asmprinter where it
   would remove $stub but keep the L prefix on a name when emitting the
   indirect symbol.  This is easy to fix by keeping the name of the stub
   and the name of the symbol in a StringMap instead of just keeping a
   StringSet and trying to reconstruct it late.

2. There was a problem printing the personality function.  The current
   logic to print out the personality function from the DWARF information
   is a bit of a cesspool right now that duplicates a bunch of other 
   logic in the asm printer.  The short version of it is that it depends
   on emitting both the L and _ prefix for symbols (at least on darwin)
   and until I can untangle it, it is best to switch the mangler back to
   emitting both prefixes.

llvm-svn: 75646
2009-07-14 18:17:16 +00:00
Kevin Enderby
0b1331c43b Added llvm-mc support for parsing the .desc directive.
llvm-svn: 75645
2009-07-14 18:17:10 +00:00
Dan Gohman
9525cf679f Add a testcase for a bug fixed by r75634.
llvm-svn: 75644
2009-07-14 18:15:00 +00:00
Dan Gohman
4ce1ac82f7 LLVM doesn't use libelf. Remove libelf configurey.
llvm-svn: 75643
2009-07-14 18:06:25 +00:00
Dale Johannesen
35fc3243a8 Revert 75571; I'm convinced this isn't the right thing to do.
llvm-svn: 75642
2009-07-14 17:48:25 +00:00
Torok Edwin
f955a6ef49 llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").

llvm-svn: 75640
2009-07-14 16:55:14 +00:00
Daniel Dunbar
dbbc49bb29 Revert r7561{9,8,7,6}, which depend on r75610.
--- Reverse-merging r75619 into '.':
U    lib/Target/DarwinTargetAsmInfo.cpp
U    lib/CodeGen/AsmPrinter/AsmPrinter.cpp
--- Reverse-merging r75618 into '.':
U    lib/CodeGen/ELFWriter.cpp
U    lib/CodeGen/MachOCodeEmitter.cpp
U    lib/CodeGen/MachOWriter.cpp
--- Reverse-merging r75617 into '.':
U    lib/Target/CBackend/CBackend.cpp
--- Reverse-merging r75616 into '.':
U    tools/bugpoint/Miscompilation.cpp
U    tools/lto/LTOCodeGenerator.cpp
U    tools/lto/LTOModule.cpp

llvm-svn: 75638
2009-07-14 16:25:11 +00:00
Daniel Dunbar
84d593320b Revert r75615, which depended on 75610.
--- Reverse-merging r75615 into '.':
U    lib/Target/XCore/XCoreAsmPrinter.cpp
U    lib/Target/PIC16/PIC16AsmPrinter.cpp
U    lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
U    lib/Target/MSP430/MSP430AsmPrinter.cpp
U    lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
U    lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
U    lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U    lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
U    lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
U    lib/Target/MSIL/MSILWriter.cpp
U    lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
U    lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp

llvm-svn: 75637
2009-07-14 16:12:13 +00:00
Daniel Dunbar
3d0c94fbbc Revert r75610 (and r75620, which was blocking the revert), in the hopes of
unbreaking llvm-gcc (on Darwin).

--- Reverse-merging r75620 into '.':
U    include/llvm/Support/Mangler.h
--- Reverse-merging r75610 into '.':
U    test/CodeGen/X86/loop-hoist.ll
G    include/llvm/Support/Mangler.h
U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
U    lib/VMCore/Mangler.cpp

llvm-svn: 75636
2009-07-14 15:57:55 +00:00
Dan Gohman
5069f6b40f Make SCEVCallbackVH::allUsesReplacedWith more thorough in removing
users from the Scalars map.

llvm-svn: 75634
2009-07-14 14:34:04 +00:00
Dan Gohman
084661b1b5 Require IVUsers after LCSSA, since LCSSA does not preserve IVUsers.
This results in the pass manager running IVUsers only once for
indvars, instead of twice.

llvm-svn: 75633
2009-07-14 14:26:23 +00:00
Dan Gohman
e69947ca6e Add a comment about why ScalarEvolution doesn't recognize non-loop PHIs
even when they're obvious.

llvm-svn: 75632
2009-07-14 14:06:25 +00:00
Torok Edwin
e5683aabc1 After converting assert(0) to LLVM_UNREACHABLE we lost file/line location.
Fix by making the LLVM_UNREACHABLE pass __FILE__ and __LINE__ to
llvm_unreachable.

llvm-svn: 75631
2009-07-14 12:49:22 +00:00
Torok Edwin
a73f9bdc2c eliminate extra space.
llvm-svn: 75630
2009-07-14 12:22:58 +00:00
Anton Korobeynikov
503e689e52 Add extra sign extension to the same bit width before int sign
extension to another bit width. This is needed to get correct singed value.
Patch by Artur Pietrek!

llvm-svn: 75629
2009-07-14 09:53:14 +00:00
Anton Korobeynikov
80da762d21 Add missing break. Patch by Artur Pietrek!
llvm-svn: 75628
2009-07-14 09:52:47 +00:00
Daniel Dunbar
c0f30f5384 Move main llvm-prof functionality into a ModulePass.
- To support using the ProfileInfo analysis results instead of accessing the
   ProfileInfoLoader directly.

 - Based on (part of) a patch by Andreas Neustifter.

 - No functionality change.

llvm-svn: 75625
2009-07-14 07:41:11 +00:00
Daniel Dunbar
21b7f85dc3 ProfileInfo interface tweaks.
- Add getExecutionCount(const Function).

 - Add helper Edge type.

 - constify.

 - No functionality change.

llvm-svn: 75623
2009-07-14 06:58:59 +00:00
Evan Cheng
7759b8186c Use http instead https for anonymous readonly check out.
llvm-svn: 75621
2009-07-14 06:23:41 +00:00
Chris Lattner
492f8619a2 remove renamed method.
llvm-svn: 75620
2009-07-14 06:22:15 +00:00
Chris Lattner
b6fc9c6c54 rename getValueName -> getMangledName. These two files have very
dubious looking things that I need to investigate in more detail.

llvm-svn: 75619
2009-07-14 06:21:12 +00:00
Chris Lattner
21182d9727 Rename getValueName -> getMangledName
llvm-svn: 75618
2009-07-14 06:20:20 +00:00
Chris Lattner
bc4a4a1e6c rename getValueName -> getMangledName
llvm-svn: 75617
2009-07-14 06:19:21 +00:00
Chris Lattner
a90ef5eb4a rename getValueName -> getMangledName
llvm-svn: 75616
2009-07-14 06:19:07 +00:00
Chris Lattner
8aa18612e2 Rename getValueName -> getMangledName.
llvm-svn: 75615
2009-07-14 06:18:50 +00:00
Bob Wilson
c6cae712d9 Remove some tabs and fix other whitespace. No functional changes.
llvm-svn: 75613
2009-07-14 06:11:12 +00:00
Bob Wilson
f37517af8c Fix a comment.
llvm-svn: 75612
2009-07-14 06:09:50 +00:00
Bob Wilson
7c4dde989d Fix an obvious error.
llvm-svn: 75611
2009-07-14 06:06:28 +00:00
Chris Lattner
b0e0d16efb Change the X86 asmprinter to use the mangler to apply suffixes like "$non_lazy_ptr"
to symbols instead of doing it with "printSuffixedName".  This gets us to the point
where there is a real separation between computing a symbol name and printing it,
something I need for MC printer stuff.

This patch also fixes a corner case bug where unnamed private globals wouldn't get
the private label prefix.

Next up, rename all uses of getValueName -> getMangledName for better greppability,
and then tackle the ppc/arm backends to eliminate "printSuffixedName".

llvm-svn: 75610
2009-07-14 06:04:35 +00:00
Lang Hames
7238ca2267 New VNInfo alignment patch by Ryan Flynn.
llvm-svn: 75609
2009-07-14 05:46:55 +00:00
Chris Lattner
2a6bb9bc51 Change the internal interface to makeNameProper to take a bool that
indicates whether the label is private or not, instead of taking
prefix stuff.  One effect of this is that symbols will be generated
with *just* the private prefix, instead of both the private prefix
*and* the user-label-prefix, but this doesn't matter as long as it
is consistent.  For example we'll now get "Lfoo" instead of "L_foo".
These are just assembler temporary labels anyway, so they never even
make it into the .o file.

llvm-svn: 75607
2009-07-14 04:50:12 +00:00
Lang Hames
19644baf4c Unbroke LiveInterval.
llvm-svn: 75588
2009-07-14 02:17:17 +00:00
Lang Hames
2600777dac Tidy up VNInfo alignment code. Patch contributed by Ryan Flynn.
llvm-svn: 75587
2009-07-14 02:05:37 +00:00
Eli Friedman
63028801b8 Fix trivial todo in instcombine.
llvm-svn: 75586
2009-07-14 02:01:53 +00:00
Evan Cheng
b8666f7abc 1. In Thumb mode, select tBx instead of ARM variants.
2. BX does not "use" the link register, it defines it.
3. Fix a couple more places in thumb td file that still uses pre-UAL syntax.

llvm-svn: 75585
2009-07-14 01:49:27 +00:00
Dan Gohman
493855541b Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant
function.

llvm-svn: 75584
2009-07-14 01:37:59 +00:00
Dan Gohman
b4db50265f Port this unittest to use LLVMContext.
llvm-svn: 75583
2009-07-14 01:26:26 +00:00
Bill Wendling
16502fbbcc Remove hack now that Evan fixed it so that the frame pointer isn't saved twice.
llvm-svn: 75581
2009-07-14 01:16:18 +00:00
Dan Gohman
b9f3a3c96b Fix indvars to not assume that a loop with a single unique exit
block has a single unique exiting block.

llvm-svn: 75579
2009-07-14 01:09:02 +00:00
Dan Gohman
80062e52e0 Introduce a new LoopInfo utility function makeLoopInvariant, which
works similar to isLoopInvariant, except that it will do trivial
hoisting to try to make the value loop invariant if it isn't already.
This makes it easier for transformation passes to clear trivial
instructions out of the way (the regular LICM pass doesn't run
until relatively late). This is code factored out of LoopSimplify
and other places.

llvm-svn: 75578
2009-07-14 01:06:29 +00:00
Chris Lattner
774d30003c use getValueName instead of makeNameProper.
llvm-svn: 75577
2009-07-14 01:01:12 +00:00
David Goodwin
88f38c0380 Fix detection of valid BFC immediates.
llvm-svn: 75576
2009-07-14 00:57:56 +00:00
Devang Patel
4992f3bed3 Do not use Mangler to remove '1' from linkage name.
llvm-svn: 75574
2009-07-14 00:55:28 +00:00
Bill Wendling
0751c92127 Check for the correct unnamed name.
llvm-svn: 75573
2009-07-14 00:53:58 +00:00
Evan Cheng
9554d9840f Fix pr4544. When remating, make sure the destination register fits the instruction definition. It may be mismatched due to sub-register coalescing.
No test case yet because the code doesn't trigger until 75408 is re-applied.

llvm-svn: 75572
2009-07-14 00:51:06 +00:00
Dale Johannesen
de1ed58935 Don't delete asm's just because their inputs are undefined;
xor R, R is a common and valid idiom for zeroing a register, for example.

llvm-svn: 75571
2009-07-14 00:45:38 +00:00
Dan Gohman
46fa731fe5 Add a newline, now that Value's operator<< doesn't print one.
llvm-svn: 75568
2009-07-14 00:32:49 +00:00
Dan Gohman
194a3c6000 FreeInst is trapping.
llvm-svn: 75567
2009-07-14 00:32:11 +00:00
Bob Wilson
a8d7dde3ce Fix an obvious copy-and-paste error.
llvm-svn: 75566
2009-07-14 00:23:44 +00:00