- Mar 09, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 12260
-
Alkis Evlogimenos authored
instructions. llvm-svn: 12258
-
Brian Gaeke authored
by trying to get the compiler to generate an undefined reference for it and related functions which live in libc_nonshared.a on Linux. Linkers... sigh. llvm-svn: 12256
-
Brian Gaeke authored
llvm-svn: 12255
-
Alkis Evlogimenos authored
llvm-svn: 12254
-
Alkis Evlogimenos authored
llvm-svn: 12253
-
Alkis Evlogimenos authored
llvm-svn: 12252
-
Alkis Evlogimenos authored
llvm-svn: 12251
-
Brian Gaeke authored
AllocInfo.Instruction becoming an int. llvm-svn: 12247
-
Brian Gaeke authored
#-1. Other minor changes to deal with AllocInfo.Instruction becoming an int. llvm-svn: 12246
-
Brian Gaeke authored
(Instruction #-1's operands = argument list). llvm-svn: 12245
-
- Mar 08, 2004
-
-
Chris Lattner authored
from using basic block counts. llvm-svn: 12242
-
Chris Lattner authored
llvm-svn: 12240
-
Chris Lattner authored
llvm-svn: 12236
-
Chris Lattner authored
using an edge profile to produce block counts gives the exact same numbers as using a block count directly. llvm-svn: 12232
-
Chris Lattner authored
llvm-svn: 12231
-
Chris Lattner authored
translation of edge counts into block/function counts when possible. llvm-svn: 12229
-
Chris Lattner authored
llvm-svn: 12225
-
Chris Lattner authored
llvm-svn: 12224
-
Chris Lattner authored
llvm-svn: 12221
-
Chris Lattner authored
I introduced last night. Note to self: test the *correct* tree... llvm-svn: 12220
-
Chris Lattner authored
llvm-svn: 12218
-
Chris Lattner authored
This is one small step towards the complete obliteration of ConstantPointerRef's entirely!! Woot! llvm-svn: 12216
-
Chris Lattner authored
llvm-svn: 12214
-
Chris Lattner authored
llvm-svn: 12212
-
Chris Lattner authored
llvm-svn: 12208
-
Chris Lattner authored
llvm-svn: 12207
-
Chris Lattner authored
testcase like this: int %test(int* %P, int %A) { %Pv = load int* %P %B = add int %A, %Pv ret int %B } We now generate: test: mov %ECX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP + 8] add %EAX, DWORD PTR [%ECX] ret Instead of: test: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] mov %EAX, DWORD PTR [%EAX] add %EAX, %ECX ret ... saving one instruction, and often a register. Note that there are a lot of other instructions that could use this, but they aren't handled. I'm not really interested in adding them, but mul/div and all of the FP instructions could be supported as well if someone wanted to add them. llvm-svn: 12204
-
Chris Lattner authored
llvm-svn: 12203
-
Chris Lattner authored
This allows pointers to aggregate objects, whose elements are only read, to be promoted and passed in by element instead of by reference. This can enable a LOT of subsequent optimizations in the caller function. It's worth pointing out that this stuff happens a LOT of C++ programs, because objects in templates are generally passed around by reference. When these templates are instantiated on small aggregate or scalar types, however, it is more efficient to pass them in by value than by reference. This transformation triggers most on C++ codes (e.g. 334 times on eon), but does happen on C codes as well. For example, on mesa it triggers 72 times, and on gcc it triggers 35 times. this is amazingly good considering that we are using 'basicaa' so far. llvm-svn: 12202
-
- Mar 07, 2004
-
-
Chris Lattner authored
llvm-svn: 12200
-
Chris Lattner authored
llvm-svn: 12198
-
Chris Lattner authored
a zero value is the most likely way to cause further simplification, so we do it. llvm-svn: 12197
-
Chris Lattner authored
llvm-svn: 12195
-
Chris Lattner authored
variables. llvm-svn: 12193
-
Alkis Evlogimenos authored
llvm-svn: 12190
-
Alkis Evlogimenos authored
llvm-svn: 12189
-
- Mar 06, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 12188
-
Brian Gaeke authored
Emit RETL instruction to return instead of funny JMPL. Fix indentation. llvm-svn: 12186
-
Brian Gaeke authored
Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency. llvm-svn: 12185
-