summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* of -> orJim Grosbach2009-10-251-1/+1
| | | | llvm-svn: 85065
* 80-column cleanupJim Grosbach2009-10-251-2/+3
| | | | llvm-svn: 85064
* Reapply 85006 with a minor fix.Sanjiv Gupta2009-10-256-3/+52
| | | | llvm-svn: 85052
* Add ARM getMatchingSuperRegClass to handle S / D / Q cross regclass coalescing.Evan Cheng2009-10-252-0/+34
| | | | llvm-svn: 85049
* Don't forget subreg indices when folding load / store.Evan Cheng2009-10-251-10/+30
| | | | llvm-svn: 85048
* Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef.Evan Cheng2009-10-251-5/+5
| | | | llvm-svn: 85047
* Code clean up.Evan Cheng2009-10-251-33/+33
| | | | llvm-svn: 85046
* Do not delete identity insert_subreg even if dest is virtual. Let later ↵Evan Cheng2009-10-251-20/+27
| | | | | | passes delete them. This avoids register scavenger complain. llvm-svn: 85045
* Remove includes of Support/Compiler.h that are no longer needed after theNick Lewycky2009-10-2598-98/+1
| | | | | | VISIBILITY_HIDDEN removal. llvm-svn: 85043
* Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces.Nick Lewycky2009-10-25115-165/+146
| | | | | | | Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
* this is done.Chris Lattner2009-10-251-35/+0
| | | | llvm-svn: 85041
* Teach FoldBitCast to be able to handle bitcasts from (e.g.) i128 -> <4 x float>.Chris Lattner2009-10-251-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to simplify this: union vec2d { double e[2]; double v __attribute__((vector_size(16))); }; typedef union vec2d vec2d; static vec2d a={{1,2}}, b={{3,4}}; vec2d foo () { return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v }; } down to: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double 1.600000e+01, 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double 2.200000e+01, 1 ; <%0> [#uses=1] ret %0 %mrv6 } instead of: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 0), 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 1), 1 ; <%0> [#uses=1] ret %0 %mrv6 } llvm-svn: 85040
* move FoldBitCast earlier in the file, and use it instead of Chris Lattner2009-10-251-132/+132
| | | | | | ConstantExpr::getBitCast in various places. llvm-svn: 85039
* refactor FoldBitCast to reduce nesting and to always return a constantexprChris Lattner2009-10-251-104/+109
| | | | | | instead of returning null on failure. No functionality change. llvm-svn: 85038
* Remove ICmpInst::isSignedPredicate which was a reimplementationNick Lewycky2009-10-255-37/+24
| | | | | | CmpInst::isSigned. llvm-svn: 85037
* Sink isTrueWhenEqual from ICmpInst to CmpInst. Add a matching isFalseWhenEqualNick Lewycky2009-10-251-1/+18
| | | | | | which is equal to !isTrueWhenEqual for ints but not for floats. llvm-svn: 85036
* When the scavenger is looking for a good candidate location to restore from aJim Grosbach2009-10-251-5/+27
| | | | | | spill, it should avoid doing so inside the live range of a virtual register. llvm-svn: 85026
* MapValue doesn't needs its LLVMContext argument.Dan Gohman2009-10-243-18/+13
| | | | llvm-svn: 85020
* Rename isLoopExit to isLoopExiting, for consistency with the wordingDan Gohman2009-10-242-3/+3
| | | | | | | | used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. llvm-svn: 85019
* Rewrite LoopRotation's SSA updating code using SSAUpdater.Dan Gohman2009-10-241-226/+70
| | | | llvm-svn: 85016
* Make DominanceFrontierBase::print's output prettier.Dan Gohman2009-10-241-3/+5
| | | | llvm-svn: 85011
* Revert back 85006 for now as it breaks PIC16 tests.Sanjiv Gupta2009-10-246-51/+3
| | | | llvm-svn: 85008
* Adding support for placing global objects in shared data memory.Sanjiv Gupta2009-10-246-3/+51
| | | | llvm-svn: 85006
* various cleanups suggested by DuncanChris Lattner2009-10-241-3/+5
| | | | llvm-svn: 84993
* fix PR5287, a serious regression from my previous patches. Thanks toChris Lattner2009-10-241-0/+1
| | | | | | Duncan for the nice tiny testcase. llvm-svn: 84992
* Auto-upgrade free instructions to calls to the builtin free function.Victor Hernandez2009-10-2417-200/+151
| | | | | | | Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. llvm-svn: 84987
* 80 col violation.Evan Cheng2009-10-241-1/+2
| | | | llvm-svn: 84986
* Add some asserts to catch copyRegToReg() fails earlyAnton Korobeynikov2009-10-241-4/+9
| | | | llvm-svn: 84983
* Restrict Thumb1 register allocation to low registers, even for instructions thatJim Grosbach2009-10-241-0/+16
| | | | | | | | can access the hi regs. Our prologue and epilogue code doesn't know how to properly handle save/restore of the hi regs, so things go badly when we alloc them. llvm-svn: 84982
* Identity copies should not contribute to spill weight.Evan Cheng2009-10-231-2/+5
| | | | llvm-svn: 84978
* FIXME no longer applies. R12 and R3 are available for allocationJim Grosbach2009-10-231-3/+0
| | | | llvm-svn: 84977
* Fix http://llvm.org/PR4822: allow module deletion after a function has beenJeffrey Yasskin2009-10-232-27/+63
| | | | | | | | | | | | | | compiled. When functions are compiled, they accumulate references in the JITResolver's stub maps. This patch removes those references when the functions are destroyed. It's illegal to destroy a Function when any thread may still try to call its machine code. This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs and fixes a couple "do stuff inside assert()" bugs from r84522. llvm-svn: 84975
* Remove AllocationInst. Since MallocInst went away, AllocaInst is the only ↵Victor Hernandez2009-10-2318-79/+117
| | | | | | subclass of AllocationInst, so it no longer is necessary. llvm-svn: 84969
* APInt-ify the gep scaling code, so that it correctly handles the case whereDan Gohman2009-10-231-4/+5
| | | | | | the scale overflows pointer-sized arithmetic. This fixes PR5281. llvm-svn: 84954
* Make LoopDeletion check the maximum backedge taken count, rather than theDan Gohman2009-10-231-1/+1
| | | | | | | exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. llvm-svn: 84952
* some stuff is done, we still have constantexpr simplification to do.Chris Lattner2009-10-231-31/+15
| | | | llvm-svn: 84943
* teach libanalysis to simplify vector loads with bitcast sources. ThisChris Lattner2009-10-231-7/+13
| | | | | | | | | | | | | | | | | | | | | | implements something out of Target/README.txt producing: _foo: ## @foo movl 4(%esp), %eax movapd LCPI1_0, %xmm0 movapd %xmm0, (%eax) ret $4 instead of: _foo: ## @foo movl 4(%esp), %eax movapd _b, %xmm0 mulpd LCPI1_0, %xmm0 addpd _a, %xmm0 movapd %xmm0, (%eax) ret $4 llvm-svn: 84942
* enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32 Chris Lattner2009-10-231-6/+8
| | | | | | bytes (i256). llvm-svn: 84941
* teach libanalysis to fold int and fp loads from almost arbitraryChris Lattner2009-10-231-8/+185
| | | | | | | | | | | | | | | | | | | non-type-safe constant initializers. This sort of thing happens quite a bit for 4-byte loads out of string constants, unions, bitfields, and an interesting endianness check from sqlite, which is something like this: const int sqlite3one = 1; # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) all of these macros now constant fold away. This implements PR3152 and is based on a patch started by Eli, but heavily modified and extended. llvm-svn: 84936
* X86 needs critical path anti-dependency breaking.Evan Cheng2009-10-231-1/+1
| | | | llvm-svn: 84931
* Commit fixes for half precision I noted in review, soDale Johannesen2009-10-231-3/+3
| | | | | | | they don't get lost; I don't think the originator has write access. llvm-svn: 84928
* Minor code cleanup.Victor Hernandez2009-10-231-3/+2
| | | | llvm-svn: 84919
* Neuter stack protectors by only checking character arrays. This is what GCCBill Wendling2009-10-231-1/+6
| | | | | | does. llvm-svn: 84916
* Allow the target to select the level of anti-dependence breaking that should ↵David Goodwin2009-10-223-7/+22
| | | | | | be performed by the post-RA scheduler. The default is none. llvm-svn: 84911
* Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' ↵Ted Kremenek2009-10-221-1/+1
| | | | | | | | | | | prevents it being correct within a multithreaded context. This address: PR 5277 (Program::Wait is unsafe to call from multiple threads). Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into another solution. llvm-svn: 84903
* Random include cleanup.Benjamin Kramer2009-10-221-0/+1
| | | | llvm-svn: 84898
* Fix OProfileJITEventListener after r84054 renamed CompileUnit to Scope.Jeffrey Yasskin2009-10-221-6/+6
| | | | llvm-svn: 84895
* Tidying up some code and comments. No functionality change.Bill Wendling2009-10-221-24/+6
| | | | llvm-svn: 84894
* Hide MetadataContext implementation details.Devang Patel2009-10-223-33/+179
| | | | llvm-svn: 84886
* Fix getMDs() interface such that it does not expose implementation details.Devang Patel2009-10-224-25/+34
| | | | llvm-svn: 84885
OpenPOWER on IntegriCloud