- Jan 31, 2007
-
-
Chris Lattner authored
llvm-svn: 33675
-
Chris Lattner authored
llvm-svn: 33674
-
Chris Lattner authored
llvm-svn: 33673
-
Chris Lattner authored
llvm-svn: 33672
-
Chris Lattner authored
llvm-svn: 33671
-
Chris Lattner authored
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array of operands + size, instead of an std::vector. In some cases, switch to using a SmallVector instead of a vector. This allows us to get rid of some special case gross code that was there to avoid the cost of constructing a vector. llvm-svn: 33670
-
Chris Lattner authored
ConstantFoldInstOperands/ConstantFoldCall to take a pointer to an array of operands + size, instead of an std::vector. llvm-svn: 33669
-
Evan Cheng authored
llvm-svn: 33668
-
Evan Cheng authored
that would require > 3 instructions to materialize), load the immediate from a constpool entry. llvm-svn: 33667
-
- Jan 30, 2007
-
-
Chris Lattner authored
llvm-svn: 33666
-
Chris Lattner authored
This occurs in C++ code like: #include <iostream> #include <iterator> int a[] = { 1, 2, 3, 4, 5 }; int main() { using namespace std; copy(a, a + sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, "\n")); return 0; } Before we would decide the loop trip count is: sdiv (i32 sub (i32 ptrtoint (i32* getelementptr ([5 x i32]* @a, i32 0, i32 5) to i32), i32 ptrtoint ([5 x i32]* @a to i32)), i32 4) Now we decide it is "5". Amazing. This code will need to be refactored, but I'm doing that as a separate commit. llvm-svn: 33665
-
Evan Cheng authored
.set PCRELV0, (LJTI1_0_0-(LPCRELL0+4)) LPCRELL0: add r1, pc, #PCRELV0 This is not legal since add r1, pc, #c requires the constant be a multiple of 4. Do the following instead: .set PCRELV0, (LJTI1_0_0-(LPCRELL0+4)) LPCRELL0: mov r1, #PCRELV0 add r1, pc - In thumb mode, it's not possible to use .set generate a pc relative stub address. The stub is ARM code which is in a different section from the thumb code. Load the value from a constpool instead. - Some asm printing clean up. llvm-svn: 33664
-
Reid Spencer authored
confusion with external linkage types. llvm-svn: 33663
-
Reid Spencer authored
llvm-svn: 33662
-
Reid Spencer authored
outweight its computational costs. This patch removes all compaction table handling from the bcreader and bcwriter. For the record, here's the difference betweeen having and not having compaction tables for some tests: Test With Without Size Chg Olden/mst 5,602 5,598 +0.1% viterbi 18,026 17,795 +1.3% obsequi 162,133 166,663 -2.8% burg 224,090 228,148 -1.8% kimwitu++ 4,933,263 5,121,159 -3.8% 176.gcc 8,470,424 9,141,539 -7.3% It seems that it is more beneficial to larger files, but even on the largest test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%. llvm-svn: 33661
-
Reid Spencer authored
Update these tests to not use the same name even though the type of the value differs. After PR411 hits, type planes will be gone and it will be illegal for a name to be used twice, regardless of type. llvm-svn: 33660
-
Reid Spencer authored
llvm-svn: 33659
-
Evan Cheng authored
llvm-svn: 33658
-
Evan Cheng authored
llvm-svn: 33657
-
Evan Cheng authored
llvm-svn: 33656
-
Reid Spencer authored
llvm-svn: 33655
-
Evan Cheng authored
llvm-svn: 33654
-
Evan Cheng authored
sp, imm instructions implicitly multiply the offset by 4. llvm-svn: 33653
-
Evan Cheng authored
llvm-svn: 33652
-
Evan Cheng authored
instructions that use these address modes to instructions that use t_addrmode_sp. llvm-svn: 33651
-
Evan Cheng authored
spilled (if it is not already). - If LR is spilled, use BL to implement far jumps. LR is not used as a GPR in thumb mode so it can be clobbered if it is properly spilled / restored in prologue / epilogue. - If LR is force spilled but no far jump has been emitted, try undo'ing the spill by: push lr -> delete pop pc -> bx lr llvm-svn: 33650
-
Evan Cheng authored
llvm-svn: 33649
-
Chris Lattner authored
llvm-svn: 33646
-
Evan Cheng authored
llvm-svn: 33644
-
Chris Lattner authored
This doesn't do the "right thing" but will probably work in most cases. This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll. llvm-svn: 33643
-
Chris Lattner authored
llvm-svn: 33642
-
Jim Laskey authored
llvm-svn: 33641
-
Devang Patel authored
llvm-svn: 33640
-
Jim Laskey authored
llvm-svn: 33639
-
Devang Patel authored
PassManagers.h). - Add StopPassTimer() and StartPassTimer() to expose TimingInfo to CallGraphPassManager - Use these two APIs in CalLgraphPassManager to measure timings. llvm-svn: 33638
-
- Jan 29, 2007
-
-
Nate Begeman authored
address nodes. llvm-svn: 33636
-
Nate Begeman authored
regs. llvm-svn: 33635
-
Jim Laskey authored
llvm-svn: 33634
-
Evan Cheng authored
llvm-svn: 33633
-
Evan Cheng authored
llvm-svn: 33632
-