aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use lightweight DebugInfo objects directly.Devang Patel2009-01-153-83/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62276 91177308-0d34-0410-b5e6-96231b3b80d8
* Move a few containers out of ScheduleDAGInstrs::BuildSchedGraphDan Gohman2009-01-1528-155/+144
| | | | | | | | | | | | and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62275 91177308-0d34-0410-b5e6-96231b3b80d8
* add comment to explain my previous commit, as asked by ChrisNuno Lopes2009-01-151-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62272 91177308-0d34-0410-b5e6-96231b3b80d8
* avoid using iterators when they get invalidated potentiallyGabor Greif2009-01-151-4/+14
| | | | | | this fixes PR3332 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62271 91177308-0d34-0410-b5e6-96231b3b80d8
* Use variable's context to identify respective DbgScope.Devang Patel2009-01-152-11/+380
| | | | | | | Use light weight DebugInfo object directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62269 91177308-0d34-0410-b5e6-96231b3b80d8
* Add load-folding table entries for BT*ri8 instructions.Dan Gohman2009-01-151-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62267 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getWidenVectorType const; this file was missed in theDan Gohman2009-01-151-1/+1
| | | | | | | previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62266 91177308-0d34-0410-b5e6-96231b3b80d8
* Make getWidenVectorType const.Dan Gohman2009-01-153-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62265 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate a redundant check.Evan Cheng2009-01-151-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62264 91177308-0d34-0410-b5e6-96231b3b80d8
* - Teach CanEvaluateInDifferentType of this xform: sext (zext ty1), ty2 -> ↵Evan Cheng2009-01-152-22/+62
| | | | | | | | | zext ty2 - Looking at the number of sign bits of the a sext instruction to determine whether new trunc + sext pair should be added when its source is being evaluated in a different type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62263 91177308-0d34-0410-b5e6-96231b3b80d8
* More consts on TargetLowering references.Dan Gohman2009-01-154-10/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62262 91177308-0d34-0410-b5e6-96231b3b80d8
* Use const with TargetLowering references in a few more places.Dan Gohman2009-01-152-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62260 91177308-0d34-0410-b5e6-96231b3b80d8
* Const-qualify getPreIndexedAddressParts and friends.Dan Gohman2009-01-155-16/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62259 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't fold address calculations which use negative offsets intoRichard Osborne2009-01-152-2/+14
| | | | | | | the ADDRspii addressing mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62258 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the operands used when building LDAWSP instructions to match the .tdRichard Osborne2009-01-152-2/+1
| | | | | | | changes in the last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62257 91177308-0d34-0410-b5e6-96231b3b80d8
* minor refactoring: use a more specific APIGabor Greif2009-01-151-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62256 91177308-0d34-0410-b5e6-96231b3b80d8
* - Convert remaining i64 custom lowering into custom instruction emissionScott Michel2009-01-159-194/+373
| | | | | | | | | | | | | | sequences in SPUDAGToDAGISel.cpp and SPU64InstrInfo.td, killing custom DAG node types as needed. - i64 mul is now a legal instruction, but emits an instruction sequence that stretches tblgen and the imagination, as well as violating laws of several small countries and most southern US states (just kidding, but looking at a function with 80+ parameters is really weird and just plain wrong.) - Update tests as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62254 91177308-0d34-0410-b5e6-96231b3b80d8
* Some small documentation fixes.Mikhail Glushenkov2009-01-152-22/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62251 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify the documentation a bit.Mikhail Glushenkov2009-01-152-13/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62249 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3325, a miscompilation of invokes by IPSCCP. Patch by Jay Foad!Chris Lattner2009-01-142-3/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62244 91177308-0d34-0410-b5e6-96231b3b80d8
* xfail for now.Devang Patel2009-01-141-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62243 91177308-0d34-0410-b5e6-96231b3b80d8
* Add pseudo instructions to the XCore for (load|store|load address) of aRichard Osborne2009-01-144-77/+84
| | | | | | | | | | | | frame index. eliminateFrameIndex will replace these instructions with (LDWSP|STWSP|LDAWSP) or (LDW|STW|LDAWF) if a frame pointer is in use. This fixes PR 3324. Previously we used LDWSP, STWSP, LDAWSP before frame pointer elimination. However since they were marked as implicitly using SP they could not be rematerialised. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62238 91177308-0d34-0410-b5e6-96231b3b80d8
* fix crash in the case when some arg is nullNuno Lopes2009-01-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62236 91177308-0d34-0410-b5e6-96231b3b80d8
* minor simplificationGabor Greif2009-01-141-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62232 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the time regression I introduced in 464.h264ref withDale Johannesen2009-01-143-46/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | my earlier patch to this file. The issue there was that all uses of an IV inside a loop are actually references to Base[IV*2], and there was one use outside that was the same but LSR didn't see the base or the scaling because it didn't recurse into uses outside the loop; thus, it used base+IV*scale mode inside the loop instead of pulling base out of the loop. This was extra bad because register pressure later forced both base and IV into memory. Doing that recursion, at least enough to figure out addressing modes, is a good idea in general; the change in AddUsersIfInteresting does this. However, there were side effects.... It is also possible for recursing outside the loop to introduce another IV where there was only 1 before (if the refs inside are not scaled and the ref outside is). I don't think this is a common case, but it's in the testsuite. It is right to be very aggressive about getting rid of such introduced IVs (CheckForIVReuse and the handling of nonzero RewriteFactor in StrengthReduceStridedIVUsers). In the testcase in question the new IV produced this way has both a nonconstant stride and a nonzero base, neither of which was handled before. And when inserting new code that feeds into a PHI, it's right to put such code at the original location rather than in the PHI's immediate predecessor(s) when the original location is outside the loop (a case that couldn't happen before) (RewriteInstructionToUseNewBase); better to avoid making multiple copies of it in this case. Also, the mechanism for keeping SCEV's corresponding to GEP's no longer works, as the GEP might change after its SCEV is remembered, invalidating the SCEV, and we might get a bad SCEV value when looking up the GEP again for a later loop. This also couldn't happen before, as we weren't recursing into GEP's outside the loop. Also, when we build an expression that involves a (possibly non-affine) IV from a different loop as well as an IV from the one we're interested in (containsAddRecFromDifferentLoop), don't recurse into that. We can't do much with it and will get in trouble if we try to create new non-affine IVs or something. More testcases are coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62212 91177308-0d34-0410-b5e6-96231b3b80d8
* Make -o a prefix option.Mikhail Glushenkov2009-01-141-1/+1
| | | | | | Both 'llvmc -o file' and 'llvmc -ofile' should work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62211 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not construct debug scope if RootScope *is* null.Devang Patel2009-01-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62209 91177308-0d34-0410-b5e6-96231b3b80d8
* Add member template MallocAllocator::Allocate(Num) (to match the same ↵Ted Kremenek2009-01-141-0/+5
| | | | | | function in BumpPtrAllocator). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62202 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite OptimizeAwayTrappingUsesOfLoads to 1) avoid a temporaryChris Lattner2009-01-142-24/+61
| | | | | | | | | vector and extraneous loop over it, 2) not delete globals used by phis/selects etc which could actually be useful. This fixes PR3321. Many thanks to Duncan for narrowing this down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62201 91177308-0d34-0410-b5e6-96231b3b80d8
* Removoe MachineModuleInfo methods (and related DebugInfoDesc class ↵Devang Patel2009-01-134-3428/+10
| | | | | | hierarchy) that were used to handle debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62199 91177308-0d34-0410-b5e6-96231b3b80d8
* fix memleaksNuno Lopes2009-01-131-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62198 91177308-0d34-0410-b5e6-96231b3b80d8
* BT appears to be available on all >= i386 chips.Dan Gohman2009-01-131-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62196 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't use a BT instruction if the AND has multiple uses.Dan Gohman2009-01-131-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62195 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable the register+memory forms of the bt instructions for now. ThanksDan Gohman2009-01-133-13/+26
| | | | | | | | | to Eli for pointing out that these forms don't ignore the high bits of their index operands, and as such are not immediately suitable for use by isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62194 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep "has debug info" big in MachineModuleInfo to avoid circular dependency ↵Devang Patel2009-01-133-2/+9
| | | | | | between AsmPrinter and CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62191 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo previous checkin.Devang Patel2009-01-133-12/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62190 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix testsuite regressions from recursive inlining.Dale Johannesen2009-01-132-3/+296
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62189 91177308-0d34-0410-b5e6-96231b3b80d8
* Use DwarfWriter to record dbg variables.Devang Patel2009-01-134-8/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62185 91177308-0d34-0410-b5e6-96231b3b80d8
* Use dwarf writer to decide whether the module has debug info or not.Devang Patel2009-01-133-2/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62184 91177308-0d34-0410-b5e6-96231b3b80d8
* Add bt instructions that take immediate operands.Dan Gohman2009-01-132-2/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62180 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a few more JIT encoding issues in the BT instructions.Dan Gohman2009-01-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62179 91177308-0d34-0410-b5e6-96231b3b80d8
* Use assertions to check for conditions that should never happen.Dan Gohman2009-01-131-12/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62178 91177308-0d34-0410-b5e6-96231b3b80d8
* The list-td and list-tdrr schedulers don't yet support physregDan Gohman2009-01-134-4/+14
| | | | | | | | | | | | scheduling dependencies. Add assertion checks to help catch this. It appears the Mips target defaults to list-td, and it has a regression test that uses a physreg dependence. Such code was liable to be miscompiled, and now evokes an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62177 91177308-0d34-0410-b5e6-96231b3b80d8
* Make instcombine ensure that all allocas are explicitly aligned at atDan Gohman2009-01-133-8/+15
| | | | | | | least their preferred alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62176 91177308-0d34-0410-b5e6-96231b3b80d8
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-1312-275/+1149
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62174 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid referring to edge D after the Succs or Preds arrays haveDan Gohman2009-01-131-3/+3
| | | | | | | | been modified, to avoid trouble in the (unlikely) scenario that D is a reference to an element in one of those arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62173 91177308-0d34-0410-b5e6-96231b3b80d8
* When replacing uses and the same node is reachedDuncan Sands2009-01-132-16/+30
| | | | | | | | | via two paths, process it once not twice, d'oh! Analysis, testcase and original patch thanks to Mon Ping Wang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62169 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark this XFAIL for the moment.Duncan Sands2009-01-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62168 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some typos. Also, the WidenedVectors mapDuncan Sands2009-01-132-9/+20
| | | | | | | was not being cleaned by ExpungeNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62167 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct a comment - this is not a sign extension.Duncan Sands2009-01-131-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62166 91177308-0d34-0410-b5e6-96231b3b80d8