summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* add comment to explain my previous commit, as asked by ChrisNuno Lopes2009-01-151-0/+2
| | | | llvm-svn: 62272
* avoid using iterators when they get invalidated potentiallyGabor Greif2009-01-151-4/+14
| | | | | | this fixes PR3332 llvm-svn: 62271
* Use variable's context to identify respective DbgScope.Devang Patel2009-01-151-11/+25
| | | | | | Use light weight DebugInfo object directly. llvm-svn: 62269
* Add load-folding table entries for BT*ri8 instructions.Dan Gohman2009-01-151-0/+3
| | | | llvm-svn: 62267
* Make getWidenVectorType const; this file was missed in theDan Gohman2009-01-151-1/+1
| | | | | | previous commit. llvm-svn: 62266
* Make getWidenVectorType const.Dan Gohman2009-01-152-2/+2
| | | | llvm-svn: 62265
* Eliminate a redundant check.Evan Cheng2009-01-151-2/+1
| | | | llvm-svn: 62264
* - Teach CanEvaluateInDifferentType of this xform: sext (zext ty1), ty2 -> ↵Evan Cheng2009-01-151-22/+51
| | | | | | | | 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. llvm-svn: 62263
* More consts on TargetLowering references.Dan Gohman2009-01-154-10/+9
| | | | llvm-svn: 62262
* Use const with TargetLowering references in a few more places.Dan Gohman2009-01-152-5/+7
| | | | llvm-svn: 62260
* Const-qualify getPreIndexedAddressParts and friends.Dan Gohman2009-01-154-14/+15
| | | | llvm-svn: 62259
* Don't fold address calculations which use negative offsets intoRichard Osborne2009-01-151-2/+2
| | | | | | the ADDRspii addressing mode. llvm-svn: 62258
* Update the operands used when building LDAWSP instructions to match the .tdRichard Osborne2009-01-152-2/+1
| | | | | | changes in the last commit. llvm-svn: 62257
* minor refactoring: use a more specific APIGabor Greif2009-01-151-2/+3
| | | | llvm-svn: 62256
* - Convert remaining i64 custom lowering into custom instruction emissionScott Michel2009-01-157-185/+333
| | | | | | | | | | | | | 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. llvm-svn: 62254
* Fix PR3325, a miscompilation of invokes by IPSCCP. Patch by Jay Foad!Chris Lattner2009-01-141-3/+2
| | | | llvm-svn: 62244
* Add pseudo instructions to the XCore for (load|store|load address) of aRichard Osborne2009-01-143-77/+66
| | | | | | | | | | | 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. llvm-svn: 62238
* fix crash in the case when some arg is nullNuno Lopes2009-01-141-1/+1
| | | | llvm-svn: 62236
* minor simplificationGabor Greif2009-01-141-2/+2
| | | | llvm-svn: 62232
* Fix the time regression I introduced in 464.h264ref withDale Johannesen2009-01-141-44/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 62212
* Do not construct debug scope if RootScope *is* null.Devang Patel2009-01-141-1/+1
| | | | llvm-svn: 62209
* rewrite OptimizeAwayTrappingUsesOfLoads to 1) avoid a temporaryChris Lattner2009-01-141-24/+26
| | | | | | | | 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. llvm-svn: 62201
* Removoe MachineModuleInfo methods (and related DebugInfoDesc class ↵Devang Patel2009-01-133-2453/+10
| | | | | | hierarchy) that were used to handle debug info. llvm-svn: 62199
* fix memleaksNuno Lopes2009-01-131-0/+2
| | | | llvm-svn: 62198
* BT appears to be available on all >= i386 chips.Dan Gohman2009-01-131-1/+0
| | | | llvm-svn: 62196
* Don't use a BT instruction if the AND has multiple uses.Dan Gohman2009-01-131-1/+3
| | | | llvm-svn: 62195
* Disable the register+memory forms of the bt instructions for now. ThanksDan Gohman2009-01-132-12/+20
| | | | | | | | 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. llvm-svn: 62194
* Keep "has debug info" big in MachineModuleInfo to avoid circular dependency ↵Devang Patel2009-01-132-0/+2
| | | | | | between AsmPrinter and CodeGen. llvm-svn: 62191
* Undo previous checkin.Devang Patel2009-01-132-9/+2
| | | | llvm-svn: 62190
* Fix testsuite regressions from recursive inlining.Dale Johannesen2009-01-131-3/+3
| | | | llvm-svn: 62189
* Use DwarfWriter to record dbg variables.Devang Patel2009-01-132-4/+11
| | | | llvm-svn: 62185
* Use dwarf writer to decide whether the module has debug info or not.Devang Patel2009-01-132-2/+9
| | | | llvm-svn: 62184
* Add bt instructions that take immediate operands.Dan Gohman2009-01-132-2/+32
| | | | llvm-svn: 62180
* Fix a few more JIT encoding issues in the BT instructions.Dan Gohman2009-01-131-2/+2
| | | | llvm-svn: 62179
* Use assertions to check for conditions that should never happen.Dan Gohman2009-01-131-12/+6
| | | | llvm-svn: 62178
* The list-td and list-tdrr schedulers don't yet support physregDan Gohman2009-01-132-2/+10
| | | | | | | | | | | 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. llvm-svn: 62177
* Make instcombine ensure that all allocas are explicitly aligned at atDan Gohman2009-01-131-6/+11
| | | | | | least their preferred alignment. llvm-svn: 62176
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-1312-275/+1149
| | | | llvm-svn: 62174
* 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. llvm-svn: 62173
* When replacing uses and the same node is reachedDuncan Sands2009-01-131-16/+9
| | | | | | | | via two paths, process it once not twice, d'oh! Analysis, testcase and original patch thanks to Mon Ping Wang. llvm-svn: 62169
* Fix some typos. Also, the WidenedVectors mapDuncan Sands2009-01-132-9/+20
| | | | | | was not being cleaned by ExpungeNode. llvm-svn: 62167
* Correct a comment - this is not a sign extension.Duncan Sands2009-01-131-1/+1
| | | | llvm-svn: 62166
* Correct a comment.Duncan Sands2009-01-131-1/+1
| | | | llvm-svn: 62165
* Wind SCEV back in time, to Nov 18th. This 'fixes' PR3275, PR3294, PR3295,Nick Lewycky2009-01-132-211/+41
| | | | | | PR3296 and PR3302. llvm-svn: 62160
* add a new insertAfter method, patch by Tom Jablin!Chris Lattner2009-01-131-0/+6
| | | | llvm-svn: 62158
* make -march=cpp handle the nocapture attribute, make it assert if itChris Lattner2009-01-131-22/+19
| | | | | | sees attributes it doesn't know. llvm-svn: 62155
* Un-tabify.Evan Cheng2009-01-131-1/+1
| | | | llvm-svn: 62151
* FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a ↵Evan Cheng2009-01-131-0/+13
| | | | | | physical register, it's not necessarily defined by a copy. We have to watch out it doesn't clobber any sub-register that might be live during its live interval. If the live interval crosses a basic block, then it's not safe to check with the less conservative check (by scanning uses and defs) because it's possible a sub-register might be live out of the block. llvm-svn: 62144
* Use DebugInfo interface to lower dbg_* intrinsics.Devang Patel2009-01-139-61/+77
| | | | llvm-svn: 62127
* Start using DebugInfo API to emit debug info.Devang Patel2009-01-131-11/+10
| | | | llvm-svn: 62125
OpenPOWER on IntegriCloud