aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
Commit message (Collapse)AuthorAgeFilesLines
* eliminate dependency on Bitcode headers.Chris Lattner2007-12-081-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44709 91177308-0d34-0410-b5e6-96231b3b80d8
* remove dead #include, APInt.h already has the needed forward decls.Chris Lattner2007-12-081-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44708 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding a StringPool data structure, which GC will use.Gordon Henriksen2007-12-081-0/+135
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44705 91177308-0d34-0410-b5e6-96231b3b80d8
* Renaming:Bill Wendling2007-12-081-12/+12
| | | | | | | | isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44702 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement correct isa<UnaryInstruction>, problem reported by "ST".Chris Lattner2007-12-081-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44697 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix several cache coherence bugs in MemDep/GVN that were found. Also add ↵Owen Anderson2007-12-081-0/+2
| | | | | | | | | some (disabled) debugging code to make such problems easier to diagnose in the future, written by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44695 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial commit of the machine code LICM pass. It successfully hoists this:Bill Wendling2007-12-071-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a stupid error that Chris pointed out.Owen Anderson2007-12-071-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44674 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new ExecutionEngine::createJIT which can be used if you only want Chris Lattner2007-12-061-0/+8
| | | | | | | | to create a JIT. This lets you specify JIT-specific configuration items like the JITMemoryManager to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44647 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify creation of the interpreter, make ExecutionEngine ctor protected,Chris Lattner2007-12-061-18/+27
| | | | | | | delete one ExecutionEngine ctor, minor cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44646 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR1831: if all defs of an interval are re-materializable, then it's ↵Evan Cheng2007-12-061-2/+8
| | | | | | a preferred spill candiate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44644 91177308-0d34-0410-b5e6-96231b3b80d8
* improve header guardChris Lattner2007-12-051-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44641 91177308-0d34-0410-b5e6-96231b3b80d8
* split the JIT memory management code out from the main JIT logic into itsChris Lattner2007-12-052-2/+98
| | | | | | | | own JITMemoryManager interface. There is no functionality change with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44640 91177308-0d34-0410-b5e6-96231b3b80d8
* - Mark last use of a split interval as kill instead of letting spiller track it.Evan Cheng2007-12-051-0/+2
| | | | | | | | | | This allows an important optimization to be re-enabled. - If all uses / defs of a split interval can be folded, give the interval a low spill weight so it would not be picked in case spilling is needed (avoid pushing other intervals in the same BB to be spilled). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44601 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a argument to storeRegToStackSlot and storeRegToAddr to specify whetherEvan Cheng2007-12-052-9/+12
| | | | | | | the stored register is killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44600 91177308-0d34-0410-b5e6-96231b3b80d8
* fixed header attributionScott Michel2007-12-051-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44599 91177308-0d34-0410-b5e6-96231b3b80d8
* More stuff for CellSPU -- this should be enough to get an error-freeScott Michel2007-12-052-0/+231
| | | | | | | compilation (no files missing). Test cases remain to be checked in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44598 91177308-0d34-0410-b5e6-96231b3b80d8
* Added "Emitter" functor to allow easy emitting of elements of a containerTed Kremenek2007-12-051-0/+11
| | | | | | | using std::for_each. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44589 91177308-0d34-0410-b5e6-96231b3b80d8
* Rather than having special rules like "intrinsics cannotDuncan Sands2007-12-034-0/+51
| | | | | | | | | | throw exceptions", just mark intrinsics with the nounwind attribute. Likewise, mark intrinsics as readnone/readonly and get rid of special aliasing logic (which didn't use anything more than this anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove redundant foldMemoryOperand variants and other code clean up.Evan Cheng2007-12-022-24/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517 91177308-0d34-0410-b5e6-96231b3b80d8
* Integrate the readonly/readnone logic more deeplyDuncan Sands2007-12-011-20/+45
| | | | | | | | | | | | | | | | into alias analysis. This meant updating the API which now has versions of the getModRefBehavior, doesNotAccessMemory and onlyReadsMemory methods which take a callsite parameter. These should be used unless the callsite is not known, since in general they can do a better job than the versions that take a function. Also, users should no longer call the version of getModRefBehavior that takes both a function and a callsite. To reduce the chance of misuse it is now protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44487 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixes for MachineLoopInfo, mostly from Evan. With these, it should be ↵Owen Anderson2007-12-012-15/+10
| | | | | | almost useable! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44480 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow some reloads to be folded in multi-use cases. Specifically testl r, r ↵Evan Cheng2007-12-012-1/+18
| | | | | | -> cmpl [mem], 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44479 91177308-0d34-0410-b5e6-96231b3b80d8
* Add target triple to include/llvm/Config/config.h.in. Regenerate all files.Eric Christopher2007-12-011-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44478 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed subtle bug in Deserializer::JumpTo when jumping when the block-nestingTed Kremenek2007-11-301-2/+2
| | | | | | | | information matching did not exactly match the underlying stream's scoping information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44470 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed potential bug where CurWord is not zeroed out in JumpToBit.Ted Kremenek2007-11-301-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44469 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not fold reload into an instruction with multiple uses. It issues one ↵Evan Cheng2007-11-301-2/+3
| | | | | | extra load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44467 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a convenience method for modifying parameterDuncan Sands2007-11-301-5/+16
| | | | | | | | | attributes. While there, I noticed that not all attribute methods returned a pointer-to-constant, so I fixed that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44457 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide a way to update DescGlobals cache directly.Devang Patel2007-11-301-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44446 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a major performance issue with splitting. If there is a def (not def/use)Evan Cheng2007-11-291-4/+19
| | | | | | | | | | | | | | | | in the middle of a split basic block, create a new live interval starting at the def. This avoid artifically extending the live interval over a number of cycles where it is dead. e.g. bb1: = vr1204 (use / kill) <= new interval starts and ends here. ... ... vr1204 = (new def) <= start a new interval here. = vr1204 (use) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44436 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace the odd kill# hack with something less fragile.Evan Cheng2007-11-291-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44434 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass the whole StringMapEntry into StringMapEntryInitializer::Initialize.Chris Lattner2007-11-291-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44432 91177308-0d34-0410-b5e6-96231b3b80d8
* provide an optional API to allow datatypes in a stringmap to be *gasp* Chris Lattner2007-11-291-7/+41
| | | | | | | | initialized with a value if they want, by specializing the StringMapEntryInitializer class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44430 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed various live interval splitting bugs / compile time issues.Evan Cheng2007-11-291-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44428 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some convenience methods for querying attributes, andDuncan Sands2007-11-283-3/+28
| | | | | | | use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing newlines at EOF.Duncan Sands2007-11-281-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44399 91177308-0d34-0410-b5e6-96231b3b80d8
* Recover compile time regression.Evan Cheng2007-11-281-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44386 91177308-0d34-0410-b5e6-96231b3b80d8
* Add MachineLoopInfo. This is not yet tested.Owen Anderson2007-11-272-1/+204
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44384 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-275-26/+33
| | | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
* Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. ↵Owen Anderson2007-11-271-37/+70
| | | | | | This involves a small interface change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44348 91177308-0d34-0410-b5e6-96231b3b80d8
* Add accessor for getting the underlying templated type. This is necessary ↵Owen Anderson2007-11-272-4/+8
| | | | | | for templated LoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44347 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove another leak. Due to some reason AliasSetTracker didn't had any dtor...Anton Korobeynikov2007-11-251-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44320 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.Nick Lewycky2007-11-253-2/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44319 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a leak. Destroy LoopInfoBase object. releaseMemory() is actually ↵Anton Korobeynikov2007-11-251-1/+1
| | | | | | called in its dtor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44317 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1816. If a bitcast of a function only exists because of aDuncan Sands2007-11-251-0/+33
| | | | | | | | | | trivial difference in function attributes, allow calls to it to be converted to direct calls. Based on a patch by Török Edwin. While there, move the various lists of mutually incompatible parameters etc out of the verifier and into ParameterAttributes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44315 91177308-0d34-0410-b5e6-96231b3b80d8
* Several changes:Chris Lattner2007-11-241-3/+7
| | | | | | | | | | | | | | | | | | | | | | | 1) Change the interface to TargetLowering::ExpandOperationResult to take and return entire NODES that need a result expanded, not just the value. This allows us to handle things like READCYCLECOUNTER, which returns two values. 2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES. 3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new ExpandOperationResult. This makes the result simpler and fully general. 4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes. 5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM i64 shifts, allowing them to work with LegalizeDAGTypes. 6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT, allowing them to work with LegalizeDAGTypes. LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when type legalization in LegalizeDAG is ifdef'd out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44300 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.Chris Lattner2007-11-231-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44296 91177308-0d34-0410-b5e6-96231b3b80d8
* add some static icmpinst predicates.Chris Lattner2007-11-221-7/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44283 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the 'const' parameter attribute to 'readnone',Duncan Sands2007-11-221-2/+2
| | | | | | | | and the 'pure' parameter attribute to 'readonly'. Names suggested by DannyB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44273 91177308-0d34-0410-b5e6-96231b3b80d8
* File missing from previous patch.Dale Johannesen2007-11-201-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44259 91177308-0d34-0410-b5e6-96231b3b80d8