aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't delete volatile loads. Doing so is not safe.Owen Anderson2007-07-231-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40448 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FastDLE, the load-elimination counterpart of FastDSE.Owen Anderson2007-07-231-0/+128
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40445 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some uses of dyn_cast to be uses of cast.Dan Gohman2007-07-233-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40443 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete the svn:executable property on these files, which aren't executable.Dan Gohman2007-07-235-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40441 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix file header.Owen Anderson2007-07-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40440 91177308-0d34-0410-b5e6-96231b3b80d8
* completely remove a transformation that is unsafe in the face ofChris Lattner2007-07-231-36/+0
| | | | | | | undefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40439 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing SSE builtins:Bill Wendling2007-07-231-10/+38
| | | | | | | | | | | | __builtin_ia32_cvtss2si64 __builtin_ia32_cvttss2si64 __builtin_ia32_cvtsi642ss __builtin_ia32_cvtsd2si64 __builtin_ia32_cvttsd2si64 __builtin_ia32_cvtsi642sd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40411 91177308-0d34-0410-b5e6-96231b3b80d8
* Report an error if one occurs in releaseModule.Reid Spencer2007-07-221-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40405 91177308-0d34-0410-b5e6-96231b3b80d8
* Apply temporary work around to fix llvm mis-compilationDevang Patel2007-07-211-1/+3
| | | | | | | reported in PR 1556. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40133 91177308-0d34-0410-b5e6-96231b3b80d8
* No more noResults.Evan Cheng2007-07-2114-57/+48
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40132 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't assume that only Uses can be kills. Defs are marked as kills initiallyDan Gohman2007-07-202-10/+8
| | | | | | | | | when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8
* zext(undef) = 0 and sext(undef) = 0, not undef.Chris Lattner2007-07-201-1/+6
| | | | | | | This hopefully fixes a miscompilation of TargetData.cpp when self hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40125 91177308-0d34-0410-b5e6-96231b3b80d8
* this xform is already done by the constant folder.Chris Lattner2007-07-201-6/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40124 91177308-0d34-0410-b5e6-96231b3b80d8
* Added -print-emitted-asm to print out JIT generated asm to cerr.Evan Cheng2007-07-209-19/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40123 91177308-0d34-0410-b5e6-96231b3b80d8
* Use SmallVector instead of std::vector.Devang Patel2007-07-201-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40109 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimize alignment of loads and stores.Dan Gohman2007-07-201-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40102 91177308-0d34-0410-b5e6-96231b3b80d8
* Place SCCPSolver also in the anonymous namespace. ThisDuncan Sands2007-07-201-3/+3
| | | | | | | pacifies g++-4.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40089 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug where we were marking GEP expressions with the wrong opcode.Owen Anderson2007-07-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40085 91177308-0d34-0410-b5e6-96231b3b80d8
* When removing instructions from the analysis, be sure to check the confirmedOwen Anderson2007-07-201-1/+2
| | | | | | | flag when determining what to do with dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40079 91177308-0d34-0410-b5e6-96231b3b80d8
* Because we promote SSE logical ops and loads to v2i64, we often end up generateEvan Cheng2007-07-201-11/+27
| | | | | | | | | | | | | code that cross integer / floating point domains (e.g. generate pxor / pand for logical ops on floating point value, movdqa to load / store floating point SSE values). Given that, it's better to use movaps instead of movdqa and movups instead of movdqu. They have the same latency but the "aps" variants are one byte shorter. If the domain crossing problem is a real performance issue, then we will have to fix it with dynamic programming based isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40076 91177308-0d34-0410-b5e6-96231b3b80d8
* Oops. These stores actually produce results.Evan Cheng2007-07-202-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40074 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix custom lowering of SSE FXOR.Evan Cheng2007-07-191-10/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40071 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix patterns so we isel the xorps, etc. for floating pt logical SSE ops. DAG ↵Evan Cheng2007-07-191-12/+12
| | | | | | combiner may fold away the (bit_convert (load)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40070 91177308-0d34-0410-b5e6-96231b3b80d8
* For PR1553:Reid Spencer2007-07-193-6/+9
| | | | | | | | | | Change the keywords for the zext and sext parameter attributes to be zeroext and signext so they don't conflict with the keywords for the instructions of the same name. This gets around the ambiguity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40069 91177308-0d34-0410-b5e6-96231b3b80d8
* Hush a noisy warning from GCC 4.2 about overflow during conversion by usingReid Spencer2007-07-191-2/+2
| | | | | | | the type "unsigned" instead of uintptr_t for a 1-bit structure field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40066 91177308-0d34-0410-b5e6-96231b3b80d8
* Make val_replace fail early, which reduces the time to optimize 403.gcc to ↵Owen Anderson2007-07-191-0/+2
| | | | | | 14.8s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40064 91177308-0d34-0410-b5e6-96231b3b80d8
* Verify loop info.Devang Patel2007-07-195-23/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40062 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace mysterious code causing a g++-4.2 warningDuncan Sands2007-07-192-18/+9
| | | | | | | with hopefully correct code that pleases g++-4.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40051 91177308-0d34-0410-b5e6-96231b3b80d8
* As pointed out by g++-4.2, the original code didn't doDuncan Sands2007-07-191-2/+2
| | | | | | | what it thought it was doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40044 91177308-0d34-0410-b5e6-96231b3b80d8
* Remember to free the heap allocated array if we're not going to use it.Owen Anderson2007-07-191-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40043 91177308-0d34-0410-b5e6-96231b3b80d8
* Use SmallVector and DenseMap in even more places.Owen Anderson2007-07-191-27/+26
| | | | | | | With this, the time to optimize 403.gcc is down to 15.1s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40042 91177308-0d34-0410-b5e6-96231b3b80d8
* Change ValueTable to use a DenseMap for mapping expressions to value numbers.Owen Anderson2007-07-191-78/+122
| | | | | | | This results in a slight speedup for 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40040 91177308-0d34-0410-b5e6-96231b3b80d8
* Set up ground work to verify preserved analysis info.Devang Patel2007-07-191-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40039 91177308-0d34-0410-b5e6-96231b3b80d8
* Move some sets and maps to SmallPtrSet and DenseMap respectively. This Owen Anderson2007-07-191-8/+7
| | | | | | | reduces the time to optimize 403.gcc from 17.6s to 16.4s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40036 91177308-0d34-0410-b5e6-96231b3b80d8
* After a basic block is split into two parts,Devang Patel2007-07-191-2/+15
| | | | | | | | | | second part dominates all the blocks dominated by original basic block. And first part dominates second part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40035 91177308-0d34-0410-b5e6-96231b3b80d8
* Now this temp. fix is not required.Devang Patel2007-07-191-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40034 91177308-0d34-0410-b5e6-96231b3b80d8
* Change instruction description to split OperandList into OutOperandList andEvan Cheng2007-07-1929-2510/+2629
| | | | | | | | | | | | | | | | InOperandList. This gives one piece of important information: # of results produced by an instruction. An example of the change: def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; => def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40033 91177308-0d34-0410-b5e6-96231b3b80d8
* Only adjust esp around calls in presence of alloca.Evan Cheng2007-07-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40030 91177308-0d34-0410-b5e6-96231b3b80d8
* Only adjust esp around calls in presence of alloca.Evan Cheng2007-07-193-50/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40028 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo.Devang Patel2007-07-181-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40025 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix dominator info update to accommodate CFG changes.Devang Patel2007-07-181-17/+65
| | | | | | | This fixes PR1559. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40024 91177308-0d34-0410-b5e6-96231b3b80d8
* Add comment.Evan Cheng2007-07-181-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40022 91177308-0d34-0410-b5e6-96231b3b80d8
* Use MOV instead of LEA to restore ESP if callee-saved frame size is 0; if ↵Evan Cheng2007-07-181-13/+19
| | | | | | previous instruction updates esp, fold it in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40018 91177308-0d34-0410-b5e6-96231b3b80d8
* Add constructor overloads for LoadInst and StoreInst that insert at theDan Gohman2007-07-181-0/+20
| | | | | | | end of a BasicBlock and have an alignment parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40016 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement initial memory alignment awareness for SSE instructions. Vector loadsDan Gohman2007-07-181-59/+126
| | | | | | | | and stores that have a specified alignment of less than 16 bytes now use instructions that support misaligned memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40015 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an issue where assignments that caused a SmallPtrSet to become non-smallOwen Anderson2007-07-181-4/+8
| | | | | | | | would result in calling realloc() on a null pointer. Instead, if we encounter this situation, make a normal call to malloc(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40014 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not necessary to do rounding for alloca operations when the requestedDan Gohman2007-07-18541-0/+253374
alignment is equal to the stack alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40004 91177308-0d34-0410-b5e6-96231b3b80d8