Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Don't delete volatile loads. Doing so is not safe. | Owen Anderson | 2007-07-23 | 1 | -0/+6 | |
| | | | | llvm-svn: 40448 | |||||
* | Add FastDLE, the load-elimination counterpart of FastDSE. | Owen Anderson | 2007-07-23 | 1 | -0/+128 | |
| | | | | llvm-svn: 40445 | |||||
* | Fix some uses of dyn_cast to be uses of cast. | Dan Gohman | 2007-07-23 | 3 | -5/+5 | |
| | | | | llvm-svn: 40443 | |||||
* | Delete the svn:executable property on these files, which aren't executable. | Dan Gohman | 2007-07-23 | 5 | -0/+0 | |
| | | | | llvm-svn: 40441 | |||||
* | Fix file header. | Owen Anderson | 2007-07-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 40440 | |||||
* | completely remove a transformation that is unsafe in the face of | Chris Lattner | 2007-07-23 | 1 | -36/+0 | |
| | | | | | | undefs. llvm-svn: 40439 | |||||
* | Add missing SSE builtins: | Bill Wendling | 2007-07-23 | 1 | -10/+38 | |
| | | | | | | | | | | | __builtin_ia32_cvtss2si64 __builtin_ia32_cvttss2si64 __builtin_ia32_cvtsi642ss __builtin_ia32_cvtsd2si64 __builtin_ia32_cvttsd2si64 __builtin_ia32_cvtsi642sd llvm-svn: 40411 | |||||
* | Report an error if one occurs in releaseModule. | Reid Spencer | 2007-07-22 | 1 | -0/+3 | |
| | | | | llvm-svn: 40405 | |||||
* | Apply temporary work around to fix llvm mis-compilation | Devang Patel | 2007-07-21 | 1 | -1/+3 | |
| | | | | | | reported in PR 1556. llvm-svn: 40133 | |||||
* | No more noResults. | Evan Cheng | 2007-07-21 | 14 | -57/+48 | |
| | | | | llvm-svn: 40132 | |||||
* | Don't assume that only Uses can be kills. Defs are marked as kills initially | Dan Gohman | 2007-07-20 | 2 | -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 llvm-svn: 40131 | |||||
* | zext(undef) = 0 and sext(undef) = 0, not undef. | Chris Lattner | 2007-07-20 | 1 | -1/+6 | |
| | | | | | | This hopefully fixes a miscompilation of TargetData.cpp when self hosting. llvm-svn: 40125 | |||||
* | this xform is already done by the constant folder. | Chris Lattner | 2007-07-20 | 1 | -6/+1 | |
| | | | | llvm-svn: 40124 | |||||
* | Added -print-emitted-asm to print out JIT generated asm to cerr. | Evan Cheng | 2007-07-20 | 9 | -19/+36 | |
| | | | | llvm-svn: 40123 | |||||
* | Use SmallVector instead of std::vector. | Devang Patel | 2007-07-20 | 1 | -10/+10 | |
| | | | | llvm-svn: 40109 | |||||
* | Optimize alignment of loads and stores. | Dan Gohman | 2007-07-20 | 1 | -0/+10 | |
| | | | | llvm-svn: 40102 | |||||
* | Place SCCPSolver also in the anonymous namespace. This | Duncan Sands | 2007-07-20 | 1 | -3/+3 | |
| | | | | | | pacifies g++-4.2. llvm-svn: 40089 | |||||
* | Fix a bug where we were marking GEP expressions with the wrong opcode. | Owen Anderson | 2007-07-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 40085 | |||||
* | When removing instructions from the analysis, be sure to check the confirmed | Owen Anderson | 2007-07-20 | 1 | -1/+2 | |
| | | | | | | flag when determining what to do with dependencies. llvm-svn: 40079 | |||||
* | Because we promote SSE logical ops and loads to v2i64, we often end up generate | Evan Cheng | 2007-07-20 | 1 | -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. llvm-svn: 40076 | |||||
* | Oops. These stores actually produce results. | Evan Cheng | 2007-07-20 | 2 | -9/+9 | |
| | | | | llvm-svn: 40074 | |||||
* | Fix custom lowering of SSE FXOR. | Evan Cheng | 2007-07-19 | 1 | -10/+19 | |
| | | | | llvm-svn: 40071 | |||||
* | Fix patterns so we isel the xorps, etc. for floating pt logical SSE ops. DAG ↵ | Evan Cheng | 2007-07-19 | 1 | -12/+12 | |
| | | | | | | combiner may fold away the (bit_convert (load)). llvm-svn: 40070 | |||||
* | For PR1553: | Reid Spencer | 2007-07-19 | 3 | -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. llvm-svn: 40069 | |||||
* | Hush a noisy warning from GCC 4.2 about overflow during conversion by using | Reid Spencer | 2007-07-19 | 1 | -2/+2 | |
| | | | | | | the type "unsigned" instead of uintptr_t for a 1-bit structure field. llvm-svn: 40066 | |||||
* | Make val_replace fail early, which reduces the time to optimize 403.gcc to ↵ | Owen Anderson | 2007-07-19 | 1 | -0/+2 | |
| | | | | | | 14.8s. llvm-svn: 40064 | |||||
* | Verify loop info. | Devang Patel | 2007-07-19 | 5 | -23/+44 | |
| | | | | llvm-svn: 40062 | |||||
* | Replace mysterious code causing a g++-4.2 warning | Duncan Sands | 2007-07-19 | 2 | -18/+9 | |
| | | | | | | with hopefully correct code that pleases g++-4.2. llvm-svn: 40051 | |||||
* | As pointed out by g++-4.2, the original code didn't do | Duncan Sands | 2007-07-19 | 1 | -2/+2 | |
| | | | | | | what it thought it was doing. llvm-svn: 40044 | |||||
* | Remember to free the heap allocated array if we're not going to use it. | Owen Anderson | 2007-07-19 | 1 | -2/+4 | |
| | | | | llvm-svn: 40043 | |||||
* | Use SmallVector and DenseMap in even more places. | Owen Anderson | 2007-07-19 | 1 | -27/+26 | |
| | | | | | | With this, the time to optimize 403.gcc is down to 15.1s. llvm-svn: 40042 | |||||
* | Change ValueTable to use a DenseMap for mapping expressions to value numbers. | Owen Anderson | 2007-07-19 | 1 | -78/+122 | |
| | | | | | | This results in a slight speedup for 403.gcc. llvm-svn: 40040 | |||||
* | Set up ground work to verify preserved analysis info. | Devang Patel | 2007-07-19 | 1 | -1/+8 | |
| | | | | llvm-svn: 40039 | |||||
* | Move some sets and maps to SmallPtrSet and DenseMap respectively. This | Owen Anderson | 2007-07-19 | 1 | -8/+7 | |
| | | | | | | reduces the time to optimize 403.gcc from 17.6s to 16.4s. llvm-svn: 40036 | |||||
* | After a basic block is split into two parts, | Devang Patel | 2007-07-19 | 1 | -2/+15 | |
| | | | | | | | | second part dominates all the blocks dominated by original basic block. And first part dominates second part. llvm-svn: 40035 | |||||
* | Now this temp. fix is not required. | Devang Patel | 2007-07-19 | 1 | -4/+0 | |
| | | | | llvm-svn: 40034 | |||||
* | Change instruction description to split OperandList into OutOperandList and | Evan Cheng | 2007-07-19 | 29 | -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))]>; llvm-svn: 40033 | |||||
* | Only adjust esp around calls in presence of alloca. | Evan Cheng | 2007-07-19 | 1 | -1/+1 | |
| | | | | llvm-svn: 40030 | |||||
* | Only adjust esp around calls in presence of alloca. | Evan Cheng | 2007-07-19 | 3 | -50/+12 | |
| | | | | llvm-svn: 40028 | |||||
* | Fix typo. | Devang Patel | 2007-07-18 | 1 | -2/+2 | |
| | | | | llvm-svn: 40025 | |||||
* | Fix dominator info update to accommodate CFG changes. | Devang Patel | 2007-07-18 | 1 | -17/+65 | |
| | | | | | | This fixes PR1559. llvm-svn: 40024 | |||||
* | Add comment. | Evan Cheng | 2007-07-18 | 1 | -0/+3 | |
| | | | | llvm-svn: 40022 | |||||
* | Use MOV instead of LEA to restore ESP if callee-saved frame size is 0; if ↵ | Evan Cheng | 2007-07-18 | 1 | -13/+19 | |
| | | | | | | previous instruction updates esp, fold it in. llvm-svn: 40018 | |||||
* | Add constructor overloads for LoadInst and StoreInst that insert at the | Dan Gohman | 2007-07-18 | 1 | -0/+20 | |
| | | | | | | end of a BasicBlock and have an alignment parameter. llvm-svn: 40016 | |||||
* | Implement initial memory alignment awareness for SSE instructions. Vector loads | Dan Gohman | 2007-07-18 | 1 | -59/+126 | |
| | | | | | | | and stores that have a specified alignment of less than 16 bytes now use instructions that support misaligned memory references. llvm-svn: 40015 | |||||
* | Fix an issue where assignments that caused a SmallPtrSet to become non-small | Owen Anderson | 2007-07-18 | 1 | -4/+8 | |
| | | | | | | | would result in calling realloc() on a null pointer. Instead, if we encounter this situation, make a normal call to malloc(). llvm-svn: 40014 | |||||
* | It's not necessary to do rounding for alloca operations when the requested | Dan Gohman | 2007-07-18 | 1 | -5/+5 | |
| | | | | | | alignment is equal to the stack alignment. llvm-svn: 40004 | |||||
* | New entry. | Evan Cheng | 2007-07-18 | 1 | -0/+17 | |
| | | | | llvm-svn: 39998 | |||||
* | Fold prologue esp update when possible. | Evan Cheng | 2007-07-17 | 1 | -1/+22 | |
| | | | | llvm-svn: 39984 | |||||
* | Dead code. | Evan Cheng | 2007-07-17 | 1 | -1/+0 | |
| | | | | llvm-svn: 39979 |