- Oct 15, 2004
-
-
Chris Lattner authored
llvm-svn: 17005
-
Nate Begeman authored
This transformation fires a few dozen times across the testsuite. For example, int test2(int X) { return X ^ 0x0FF00FF0; } Old: _test2: lis r2, 4080 ori r2, r2, 4080 xor r3, r3, r2 blr New: _test2: xoris r3, r3, 4080 xori r3, r3, 4080 blr llvm-svn: 17004
-
Misha Brukman authored
llvm-svn: 17003
-
Misha Brukman authored
llvm-svn: 17002
-
Misha Brukman authored
llvm-svn: 17001
-
- Oct 14, 2004
-
-
Misha Brukman authored
llvm-svn: 17000
-
Misha Brukman authored
* In the F3_3 class, remove mention of asi because it's not part of the format llvm-svn: 16999
-
Chris Lattner authored
weak functions. Thanks for finding this John! llvm-svn: 16997
-
Brian Gaeke authored
llvm-svn: 16996
-
Brian Gaeke authored
adding emitFPToIntegerCast. llvm-svn: 16995
-
Brian Gaeke authored
Update list of currently failing tests. ADJCALLSTACK* support is done. llvm-svn: 16994
-
Chris Lattner authored
Patch by Morten Ofstad llvm-svn: 16987
-
Chris Lattner authored
same scope. This confused VC++ (and probably people too!). Patch by Morten Ofstad! llvm-svn: 16985
-
Misha Brukman authored
addPassesToEmitMachineCode() * Add support for registers and constants in getMachineOpValue() This enables running "int main() { ret 0 }" via the PowerPC JIT. llvm-svn: 16983
-
Misha Brukman authored
* Add implementation of getMachineOpValue() for generated code emitter * Convert assert()s in unimplemented functions to abort()s so that non-debug builds fail predictably * Add file header comments llvm-svn: 16981
-
Misha Brukman authored
and 64-bit code emitters that cannot share code unless we use virtual functions * Identify components being built by tablegen with more detail by assigning them to PowerPC, PPC32, or PPC64 more specifically; also avoids seeing 'building PowerPC XYZ' messages twice, where one is for PPC32 and one for PPC64 llvm-svn: 16980
-
Tanya Lattner authored
Checking in code that works on my simple test case. However, there is still a bug with branches that I need to fix. llvm-svn: 16979
-
Misha Brukman authored
the instruction binary format, all others are simply operands and should not have the `field' label llvm-svn: 16978
-
Misha Brukman authored
llvm-svn: 16977
-
Misha Brukman authored
llvm-svn: 16976
-
Chris Lattner authored
nodes unless we KNOW that we are able to promote all of them. This fixes: test/Regression/Transforms/SimplifyCFG/PhiNoEliminate.ll llvm-svn: 16973
-
Reid Spencer authored
llvm-svn: 16971
-
Reid Spencer authored
llvm-svn: 16970
-
Reid Spencer authored
llvm-svn: 16969
-
Reid Spencer authored
llvm-svn: 16968
-
Chris Lattner authored
llvm-svn: 16967
-
Chris Lattner authored
llvm-svn: 16966
-
Chris Lattner authored
llvm-svn: 16965
-
Chris Lattner authored
llvm-svn: 16964
-
Chris Lattner authored
llvm-svn: 16963
-
Chris Lattner authored
llvm-svn: 16962
-
Chris Lattner authored
llvm-svn: 16961
-
- Oct 13, 2004
-
-
Reid Spencer authored
llvm-svn: 16950
-
- Oct 12, 2004
-
-
Chris Lattner authored
llvm-svn: 16932
-
Chris Lattner authored
llvm-svn: 16929
-
Chris Lattner authored
llvm-svn: 16927
-
Chris Lattner authored
to go in. This patch allows us to compute the trip count of loops controlled by values loaded from constant arrays. The cannonnical example of this is strlen when passed a constant argument: for (int i = 0; "constantstring"[i]; ++i) ; return i; In this case, it will compute that the loop executes 14 times, which means that the exit value of i is 14. Because of this, the loop gets DCE'd and we are happy. This also applies to anything that does similar things, e.g. loops like this: const float Array[] = { 0.1, 2.1, 3.2, 23.21 }; for (int i = 0; Array[i] < 20; ++i) and is actually fairly general. The problem with this is that it almost never triggers. The reason is that we run indvars and the loop optimizer only at compile time, which is before things like strlen and strcpy have been inlined into the program from libc. Because of this, it almost never is used (it triggers twice in specint2k). I'm committing it because it DOES work, may be useful in the future, and doesn't slow us down at all. If/when we start running the loop optimizer at link-time (-O4?) this will be very nice indeed :) llvm-svn: 16926
-
Chris Lattner authored
marker from one ilist into the middle of another basic block! llvm-svn: 16925
-
Chris Lattner authored
pointer recurrences into expressions from this: %P_addr.0.i.0 = phi sbyte* [ getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), %entry ], [ %inc.0.i, %no_exit.i ] %inc.0.i = getelementptr sbyte* %P_addr.0.i.0, int 1 ; <sbyte*> [#uses=2] into this: %inc.0.i = getelementptr sbyte* getelementptr ([8 x sbyte]* %.str_1, int 0, int 0), int %inc.0.i.rec Actually create something nice, like this: %inc.0.i = getelementptr [8 x sbyte]* %.str_1, int 0, int %inc.0.i.rec llvm-svn: 16924
-
Chris Lattner authored
well as a vector of constant*'s. It turns out that this is more efficient and all of the clients want to do that, so we should cater to them. llvm-svn: 16923
-