summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use byte offset, instead of element number, to access merged global.Devang Patel2011-08-031-3/+21
| | | | llvm-svn: 136759
* Small cleanups:Nick Lewycky2011-08-031-3/+2
| | | | | | | | | - use SmallVectorImpl& for the function argument. - ignore the operands on the GEP, even if they aren't constant! Much as we pretend the malloc succeeds, we pretend that malloc + whatever-you-GEP'd-by is not null. It's magic! llvm-svn: 136757
* Add this back in for now. There are still a few passes which create unwind ↵Bill Wendling2011-08-031-1/+1
| | | | | | instructions at the moment. llvm-svn: 136756
* Fix logical error when detecting lifetime intrinsics.Nick Lewycky2011-08-031-33/+34
| | | | | | | | | Don't replace a gep/bitcast with 'undef' because that will form a "free(undef)" which in turn means "unreachable". What we wanted was a no-op. Instead, analyze the whole tree and look for all the instructions we need to delete first, then delete them second, not relying on the use_list to stay consistent. llvm-svn: 136752
* Replace the 'UnwindInst' check with a check for 'ResumeInst', which also exitsBill Wendling2011-08-031-1/+1
| | | | | | the function, because the UnwindInst is going away. llvm-svn: 136751
* Use the precomputed def presence in RAGreedy::calcSpillCost.Jakob Stoklund Olesen2011-08-021-11/+2
| | | | llvm-svn: 136742
* Inform SpillPlacement about blocks with defs.Jakob Stoklund Olesen2011-08-021-0/+1
| | | | | | This information is not used for anything yet. llvm-svn: 136741
* Rename {First,Last}Use to {First,Last}Instr.Jakob Stoklund Olesen2011-08-023-43/+45
| | | | | | | With a 'FirstDef' field right there, it is very confusing that FirstUse refers to an instruction that may be a def. llvm-svn: 136739
* ARM backend support for atomicrmw and cmpxchg with non-monotonic ordering. ↵Eli Friedman2011-08-021-47/+77
| | | | | | Not especially pretty, but seems to work well enough. If this looks okay, I'll put together similar patches for Mips, PPC, and Alpha. llvm-svn: 136737
* Add a BlockInfo::FirstDef field.Jakob Stoklund Olesen2011-08-022-1/+15
| | | | | | | | | | | This is either an invalid SlotIndex, or valno->def for the first value defined inside the block. PHI values are not counted as defined inside the block. The FirstDef field will be used when estimating the cost of spilling around a block. llvm-svn: 136736
* Delete BlockInfo::LiveThrough. It wasn't used any more.Jakob Stoklund Olesen2011-08-022-4/+0
| | | | llvm-svn: 136735
* Teach InstCombine that lifetime intrincs aren't a real user on the result of aNick Lewycky2011-08-021-11/+35
| | | | | | malloc call. llvm-svn: 136732
* Extend the SpillPlacement interface with two new features.Jakob Stoklund Olesen2011-08-022-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | The PrefBoth constraint is used for blocks that ideally want a live-in value both on the stack and in a register. This would be used by a block that has a use before interference forces a spill. Secondly, add the ChangesValue flag to BlockConstraint. This tells SpillPlacement if a live-in value on the stack can be reused as a live-out stack value for free. If the block redefines the virtual register, a spill would be required for that. This extra information will be used by SpillPlacement to more accurately calculate spill costs when a value can exist both on the stack and in a register. The simplest example is a basic block that reads the virtual register, but doesn't change its value. Spilling around such a block requires a reload, but no spill in the block. The spiller already knows this, but the spill placer doesn't. That can sometimes lead to suboptimal regions. llvm-svn: 136731
* Move methods in PassManagerBuilder offline.Rafael Espindola2011-08-022-0/+249
| | | | llvm-svn: 136727
* Add new atomic instructions to SCCP. No functional change, but stops debug ↵Eli Friedman2011-08-021-0/+2
| | | | | | spam. llvm-svn: 136723
* Lifetime intrinsics on undef are dead.Nick Lewycky2011-08-021-3/+9
| | | | llvm-svn: 136722
* Assume .cfi_startproc is the first thing in a function. If the function isRafael Espindola2011-08-021-7/+14
| | | | | | | | | externally visable, create a local symbol to use in the CFE. If not, use the function label itself. Fixes PR10420. llvm-svn: 136716
* Don't create a ridiculous EXTRACT_ELEMENT. PR10563.Eli Friedman2011-08-022-3/+2
| | | | | | The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this. llvm-svn: 136711
* Fix the broken encodings for the VFP vmov.f32 and vmov.f64 instructions, as ↵Owen Anderson2011-08-021-6/+8
| | | | | | well as the comments that explain them incorrectly. llvm-svn: 136707
* Tidy up. 80 columns.Jim Grosbach2011-08-021-8/+10
| | | | llvm-svn: 136705
* ARM: rename addrmode7 to addr_offset_none.Jim Grosbach2011-08-021-14/+15
| | | | | | Use a more descriptive name so the code is more self-documenting. llvm-svn: 136704
* Comment out the PPC relocation offset adjustment. It must be done differently.Roman Divacky2011-08-021-0/+4
| | | | | | This unbreaks some tests. llvm-svn: 136692
* Make this kind of lowering to be supported by 256-bit instructions:Bruno Cardoso Lopes2011-08-021-14/+24
| | | | | | | | | shuffle (scalar_to_vector (load (ptr + 4))), undef, <0, 0, 0, 0> To: shuffle (vload ptr)), undef, <1, 1, 1, 1> Fix PR10494 llvm-svn: 136691
* Remove trailing semicolon.Roman Divacky2011-08-021-1/+1
| | | | llvm-svn: 136690
* Sketch out PowerPC ELF writer. This is enough to get clang -integrated-asRoman Divacky2011-08-024-2/+156
| | | | | | to compile a working hello world on FreeBSD/PPC32. llvm-svn: 136689
* Remove the LLVMBuildUnwind C API function.Bill Wendling2011-08-021-4/+0
| | | | | | | The 'unwind' function is going away with the new EH rewrite. This is step 0 in keeping front-ends from using it. llvm-svn: 136683
* Use consistent terminology for loop exit/exiting blocks. Name change only.Andrew Trick2011-08-021-9/+9
| | | | llvm-svn: 136677
* Revert r136503 and r136480 in an effort to fix non-determinism in the ↵Owen Anderson2011-08-021-22/+1
| | | | | | llvm-gcc buildbots on i386. Devang is looking into the root cause. llvm-svn: 136674
* Bail from FastISel when we encounter a volatile memset intrinsic. Patch by IvanNick Lewycky2011-08-021-0/+3
| | | | | | Krasin! llvm-svn: 136663
* Move imm0_255 to ARMInstrInfo.td with the other immediate predicates.Jim Grosbach2011-08-012-4/+6
| | | | llvm-svn: 136656
* Fix comments.Jim Grosbach2011-08-011-2/+2
| | | | llvm-svn: 136655
* Add v4f64 -> v2f32 fp_round support. Also add a testcase to exerciseBruno Cardoso Lopes2011-08-012-0/+7
| | | | | | | the legalizer. This commit together with the two previous ones fixes PR10495. llvm-svn: 136654
* Teach PreprocessISelDAG to be aware of vector types and to not process them.Bruno Cardoso Lopes2011-08-013-6/+11
| | | | llvm-svn: 136653
* Lower CONCAT_VECTORS to use two VINSERTF128 instructions instead ofBruno Cardoso Lopes2011-08-011-5/+48
| | | | | | using a stack store. llvm-svn: 136652
* Actually finish switching to the new system for Target sublibraryChandler Carruth2011-08-019-9/+9
| | | | | | | | | | | TableGen deps introduced in r136023. This completes the fixing that dgregor started in r136621. Sorry for missing these the first time around. This should fix some of the random race-condition failures people are still seeing with CMake. llvm-svn: 136643
* Since vectors with all ones can't be created with a 256-bit instruction,Bruno Cardoso Lopes2011-08-011-11/+13
| | | | | | | | avoid returning early for v8i32 types, which would only be valid for vector with all zeros. Also split the handling of zeros and ones into separate checking logic since they are handled differently. This fixes PR10547 llvm-svn: 136642
* Set endianess and pointer size for PPC Linux. Bug noticed by Roman Divacky.Evan Cheng2011-08-011-0/+4
| | | | llvm-svn: 136639
* Change SmallVector to SmallPtrSet in BranchProbabilityInfo. Handle cases whereJakub Staszak2011-08-011-15/+15
| | | | | | one than one successor goes to the same block. llvm-svn: 136638
* Fix crash with varargs function with no named parameters.Richard Osborne2011-08-011-2/+2
| | | | llvm-svn: 136623
* Update CMake target names for tablegen-generated data in the X86 and ARM ↵Douglas Gregor2011-08-013-3/+3
| | | | | | targets. This should fix the CMake build with MSVC. llvm-svn: 136621
* Add braces.Jay Foad2011-08-011-1/+2
| | | | llvm-svn: 136612
* Simplify printAlias.Jay Foad2011-08-011-21/+2
| | | | llvm-svn: 136611
* Micro-optimisation in getAliasedGlobal.Jay Foad2011-08-011-1/+1
| | | | llvm-svn: 136610
* Remove an unnecessary cast.Jay Foad2011-08-011-1/+1
| | | | llvm-svn: 136609
* I mis-interpreted the MCDisassembler's intended dependencies. Now to fixChandler Carruth2011-07-311-2/+9
| | | | | | | | | | | | | them properly. Specifically, the disassembler clearly attempts to initialiaze all TargetInfo, MCTargeDesc, AsmParser, and Disassembler sublibraries of registered targets. This makes the CMakeLists accurately reflect this intent in the code. This should fix the last of the link errors that I have gotten reports of on OS X, but if anyone continues to see link errors, continue to pester me and I'll look into it. llvm-svn: 136603
* Add the 'resume' instruction for the new EH rewrite.Bill Wendling2011-07-3117-8/+95
| | | | | | | | | This adds the 'resume' instruction class, IR parsing, and bitcode reading and writing. The 'resume' instruction resumes propagation of an existing (in-flight) exception whose unwinding was interrupted with a 'landingpad' instruction (to be added later). llvm-svn: 136589
* Do not handle cases with >= and <= predicates.Jakub Staszak2011-07-311-7/+0
| | | | llvm-svn: 136588
* Remove untrue comment.Jakub Staszak2011-07-311-3/+0
| | | | llvm-svn: 136587
* Do not handle case where LHS is equal to zero, because InstCombiner always movesJakub Staszak2011-07-311-24/+8
| | | | | | it to RHS anyway. llvm-svn: 136586
* Add a small gep optimization I noticed was missing while reading some IL.Rafael Espindola2011-07-311-11/+13
| | | | llvm-svn: 136585
OpenPOWER on IntegriCloud