- Mar 01, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 151795
-
David Meyer authored
* Add begin_dynamic_table() / end_dynamic_table() private interface to ELFObjectFile. * Add begin_libraries_needed() / end_libraries_needed() interface to ObjectFile, for grabbing the list of needed libraries for a shared object or dynamic executable. * Implement this new interface completely for ELF, leave stubs for COFF and MachO. * Add 'llvm-readobj' tool for dumping ObjectFile information. llvm-svn: 151785
-
Lang Hames authored
While we're at it - don't copy vreg implicit operands while rematerializing. This fixes PR12138. llvm-svn: 151779
-
Richard Trieu authored
llvm-svn: 151778
-
- Feb 29, 2012
-
-
Benjamin Kramer authored
LegalizeIntegerTypes: Reorder operations in the "big shift by small amount" optimization, making the lives of later passes easier. llvm-svn: 151722
-
Duncan Sands authored
a constant. This fixes PR1768. llvm-svn: 151713
-
Bill Wendling authored
llvm-svn: 151694
-
Jim Grosbach authored
Without this hook, functions w/ a completely empty body (including no epilogue) will cause an MCEmitter assertion failure. For example, define internal fastcc void @empty_function() { unreachable } rdar://10947471 llvm-svn: 151673
-
David Meyer authored
In the ObjectFile interface, replace isInternal(), isAbsolute(), isGlobal(), and isWeak(), with a bitset of flags. llvm-svn: 151670
-
- Feb 28, 2012
-
-
Rafael Espindola authored
debug info for assembly files. We were already doing the right thing when producing debug info for C/C++. ELF linkers don't know dwarf, so they depend on these relocations to produce valid dwarf output. llvm-svn: 151655
-
Benjamin Kramer authored
To avoid problems with zero shifts when getting the bits that move between words we use a trick: first shift the by amount-1, then do another shift by one. When amount is 0 (and size 32) we first shift by 31, then by one, instead of by 32. Also fix a latent bug that emitted the low and high words in the wrong order when shifting right. Fixes PR12113. llvm-svn: 151637
-
Daniel Dunbar authored
Revert r151623 "Some ARM implementaions, e.g. A-series, does return stack prediction. ...", it is breaking the Clang build during the Compiler-RT part. llvm-svn: 151630
-
Nadav Rotem authored
When the GEP index is a vector of pointers, the code that calculated the size of the element started from the vector type, and not the contained pointer type. As a result, instead of looking at the data element pointed by the vector, this code used the size of the vector. This works for 32bit members (on 32bit systems), but not for other types. Added code to peel the vector type and added a test. llvm-svn: 151626
-
Evan Cheng authored
the processor keeps a return addresses stack (RAS) which stores the address and the instruction execution state of the instruction after a function-call type branch instruction. Calling a "noreturn" function with normal call instructions (e.g. bl) can corrupt RAS and causes 100% return misprediction so LLVM should use a unconditional branch instead. i.e. mov lr, pc b _foo The "mov lr, pc" is issued in order to get proper backtrace. rdar://8979299 llvm-svn: 151623
-
Pete Cooper authored
Reverted r152620 - DSE: Shorten memset when a later store overwrites the start of it. There were all sorts of buildbot issues llvm-svn: 151621
-
Pete Cooper authored
llvm-svn: 151620
-
Akira Hatanaka authored
load and store instructions. llvm-svn: 151611
-
Jakob Stoklund Olesen authored
Don't attempt to extend physreg live ranges across calls. <rdar://problem/10942095> llvm-svn: 151610
-
Jakob Stoklund Olesen authored
When an outgoing call takes more than 2k of arguments on the stack, we don't allocate that call frame in the prolog, but adjust the stack pointer immediately before the call instead. This causes problems with the emergency spill slot because PEI can't track stack pointer adjustments on the second pass, and if the outgoing arguments are too big, SP can't be used to reach the emergency spill slot at all. Work around these problems by ensuring there is a base or frame pointer that can be used to access the emergency spill slot. <rdar://problem/10917166> llvm-svn: 151604
-
Michael J. Spencer authored
Add -D option to llvm-nm to dump dynamic symbols. Patch by David Meyer. llvm-svn: 151600
-
Bill Wendling authored
llvm-svn: 151594
-
Preston Gurd authored
llvm-svn: 151588
-
Eli Friedman authored
Duncan pointed out that if the alignment isn't explicitly specified, it defaults to the ABI alignment. Given that, make this code a bit more aggressive in such cases. llvm-svn: 151584
-
- Feb 27, 2012
-
-
-
Jim Grosbach authored
We on the linker to resolve calls to the appropriate BL/BLX instruction to make interworking function correctly. It uses the symbol in the relocation to do that, so we need to be careful about being too clever. To enable this for ARM mode, split the BL/BLX fixup kind off from the unconditional-branch fixups. rdar://10927209 llvm-svn: 151571
-
Eli Friedman authored
Teach BasicAA about the LLVM IR rules that allow reading past the end of an object given sufficient alignment. Fixes PR12098. llvm-svn: 151553
-
Roman Divacky authored
llvm-svn: 151552
-
Roman Divacky authored
MCize function entry label emission on PowerPC64 properly. llvm-svn: 151547
-
Duncan Sands authored
%cmp (eg: A==B) we already replace %cmp with "true" under the true edge, and with "false" under the false edge. This change enhances this to replace the negated compare (A!=B) with "false" under the true edge and "true" under the false edge. Reported to improve perlbench results by 1%. llvm-svn: 151517
-
Rafael Espindola authored
properties (invoke). Just assert that the instruction we return dominates the insertion point. llvm-svn: 151511
-
Craig Topper authored
llvm-svn: 151510
-
- Feb 26, 2012
-
-
Rafael Espindola authored
llvm-svn: 151475
-
Rafael Espindola authored
verifier does. This correctly handles invoke. Thanks to Duncan, Andrew and Chris for the comments. Thanks to Joerg for the early testing. llvm-svn: 151469
-
Nick Lewycky authored
'gep null' when the icmp predicate is unsigned (or is signed without inbounds). llvm-svn: 151467
-
Nick Lewycky authored
MultiSource/Applications/lua. llvm-svn: 151463
-
- Feb 25, 2012
-
-
Nick Lewycky authored
equal if both are null. In the test, scope type %t and global @y by adding a 'gep' prefix to them. llvm-svn: 151452
-
Nick Lewycky authored
by using llvm::isIdentifiedObject. Also teach it to handle GEPs that have the same base pointer and constant operands. Fixes PR11238! llvm-svn: 151449
-
Hal Finkel authored
Reverting this because it breaks static linking on ppc64. Specifically, it may be linkonce_odr functions that are the problem. With this patch, if you link statically, calls to some functions end up calling their descriptor addresses instead of calling to their entry points. This causes the execution to fail with SIGILL (b/c the descriptor address just has some pointers, not code). llvm-svn: 151433
-
NAKAMURA Takumi authored
Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2 lowering for i386-*-win32 targets. Patch by Joe Groff. [Joe Groff] Hi everyone. My previous patch applied as r151382 had a few problems: Clang raised a warning, and X86 LowerOperation would assert out for fptoui f64 to i32 because it improperly lowered to an illegal BUILD_PAIR. Here's a patch that addresses these issues. Let me know if any other changes are necessary. Thanks. llvm-svn: 151432
-
Akira Hatanaka authored
add/sub instructions. llvm-svn: 151415
-