Misha Brukman
0fe1f5d880
Add PowerPCBranchSelector to discover which are `long' branches.
...
Contributed by Nate Begeman.
llvm-svn: 15280
2004-07-27 18:33:06 +00:00
Brian Gaeke
fefef027f4
TargetInstrInfo::getNOPOpCode() has been replaced by a reference to V9::NOP.
...
llvm-svn: 15279
2004-07-27 17:43:24 +00:00
Brian Gaeke
c9b9016d72
Convert many of the virtual TargetInstrInfo methods used as helper
...
functions in SparcV9InstrSelection and SparcV9PreSelection into regular
old global functions. As it happens, none of them really have anything
to do with TargetInstrInfo.
llvm-svn: 15278
2004-07-27 17:43:23 +00:00
Brian Gaeke
a71776e676
As it happens, none of these TargetInstrInfo methods which are only
...
used in the SparcV9 backend really have anything to do with
TargetInstrInfo, so we're converting them into regular old global
functions and moving their declarations to SparcV9InstrSelectionSupport.h.
(They're mostly used as helper functions for SparcV9InstrSelection.)
llvm-svn: 15277
2004-07-27 17:43:22 +00:00
Brian Gaeke
45adb41f46
Make the create...() functions for some of these passes return a FunctionPass *.
...
llvm-svn: 15276
2004-07-27 17:43:21 +00:00
Misha Brukman
c22bbdd36d
Fixed saving/restoring LR unconditionally, only done as necessary.
...
llvm-svn: 15275
2004-07-27 17:17:48 +00:00
Misha Brukman
adb86dba29
Save and restore LR just like any other register and ONLY if we actually modify
...
it (due to calls or globals access). We now compile `void empty(){}' to `blr'.
llvm-svn: 15274
2004-07-27 17:17:18 +00:00
Misha Brukman
6fec7336fe
LR is a 32-bit int reg
...
llvm-svn: 15273
2004-07-27 17:15:32 +00:00
Misha Brukman
93b0ea58a2
MovePCtoLR (which is `bl' in disguise) modifies LR implicitly
...
llvm-svn: 15272
2004-07-27 17:15:05 +00:00
Misha Brukman
4be6841bc0
Register LR is callee-saved
...
llvm-svn: 15271
2004-07-27 17:14:34 +00:00
Misha Brukman
a3ac216fce
Add IMPLICIT_DEF of LR for branch-and-link instrs (calls and global accesses)
...
llvm-svn: 15270
2004-07-27 17:13:58 +00:00
Chris Lattner
5a6ff22b3c
Ugh, the upgrade of zion brought in GCC 3.3.2, our arch nemesis.
...
llvm-svn: 15269
2004-07-27 08:29:06 +00:00
Chris Lattner
cac8edbc32
Run DSE at link-time, and turn on an IP alias analysis by default in gccld!
...
The -disable-globalsmodref is temporary and will be removed eventually.
llvm-svn: 15268
2004-07-27 08:13:15 +00:00
Chris Lattner
81f96c5a79
nuke pointless -debug output
...
llvm-svn: 15267
2004-07-27 08:03:18 +00:00
Chris Lattner
1e5a9fdf27
New functionality
...
llvm-svn: 15266
2004-07-27 07:50:07 +00:00
Chris Lattner
cab922906b
Document new syntax
...
llvm-svn: 15265
2004-07-27 07:49:39 +00:00
Chris Lattner
6a1dd59421
Fix conservative assumption, which was quite broken. Also, notice that
...
functions known to not access memory (like sin/cos) don't access memory! :)
llvm-svn: 15264
2004-07-27 07:46:26 +00:00
Chris Lattner
5cfb85064e
Fix hoisting of void typed values, e.g. calls
...
llvm-svn: 15263
2004-07-27 07:38:32 +00:00
Chris Lattner
687d568cf1
alloca void makes no sense
...
llvm-svn: 15262
2004-07-27 07:30:02 +00:00
Chris Lattner
e921652646
Remove a bogus assertion
...
llvm-svn: 15261
2004-07-27 07:22:21 +00:00
Chris Lattner
c76d21f55d
Complete rewrite of this pass to be faster, use less memory, be easier to
...
understand, and more accurate to boot! This implements
GlobalModRef/purecse.ll over the previous impl.
llvm-svn: 15260
2004-07-27 06:40:37 +00:00
Chris Lattner
4ea46f09bd
new testcase
...
llvm-svn: 15259
2004-07-27 06:35:11 +00:00
Chris Lattner
6e66e31be8
Have some testcases
...
llvm-svn: 15258
2004-07-27 06:26:08 +00:00
Chris Lattner
de0fddf8ee
Add a note
...
llvm-svn: 15257
2004-07-27 04:00:54 +00:00
Chris Lattner
7d98fd121c
Fix out of date comment
...
llvm-svn: 15256
2004-07-27 03:04:30 +00:00
Chris Lattner
60e918e115
Simplify code and silence warning
...
llvm-svn: 15255
2004-07-27 02:34:49 +00:00
Chris Lattner
550242f7ec
Use context-sensitive alias analysis to avoid pessimization in clients of
...
AliasSetTracker (dse and licm). This implements
DeadStoreElimination/context-sensitive.llx
llvm-svn: 15254
2004-07-27 02:20:26 +00:00
Chris Lattner
17970df44f
New testcase. DSE should delete all of the DEAD instructions.
...
llvm-svn: 15253
2004-07-27 02:19:27 +00:00
Chris Lattner
40bd881142
Make basicaa a bit more aggressive
...
llvm-svn: 15252
2004-07-27 02:18:52 +00:00
Chris Lattner
fe3fff9354
basic-aa can actually provide simple mod/ref info
...
llvm-svn: 15251
2004-07-27 02:13:55 +00:00
Chris Lattner
9cfa22fb48
This was implemented back in march
...
llvm-svn: 15250
2004-07-27 01:59:42 +00:00
Chris Lattner
33187c4026
Implement test/Regression/TableGen/ListSlices.td
...
llvm-svn: 15249
2004-07-27 01:01:21 +00:00
Chris Lattner
313fb44da9
New testcase for list slicing
...
llvm-svn: 15248
2004-07-27 01:00:56 +00:00
Chris Lattner
8dcbaf2f98
Add initial support for list slices. This currently allows you to do stuff
...
like this:
def B {
list<int> X = [10, 20, 30, 4, 1, 1231, 20] [2-4,2,2,0-6];
}
... which isn't particularly useful, but more is to come.
llvm-svn: 15247
2004-07-26 23:21:34 +00:00
Reid Spencer
bf4651aa66
A utility to run an arbitrary program on each of the LLVM source files.
...
This is like llvmgrep but instead of running grep, it runs the command
given by the first argument. For example, to find the top ten files with
the most lines in llvm, you could:
utils/llvmdo wc -l | sort -nb | tail
Or, to find any source files with the wrong permissions, you could:
utils/llvmdo ls -l | grep -v rw-r--r--
Hopefully, you get the idea.
llvm-svn: 15246
2004-07-26 22:52:44 +00:00
Misha Brukman
6272268028
Do not store the stack pointer if the stack size is 0.
...
Also, convert C-style comments to C++ and make sure code wraps at 80 cols.
llvm-svn: 15245
2004-07-26 22:00:26 +00:00
Misha Brukman
a979e8a08a
ADDI can take several forms, including:
...
addi r1, r2, 0
addi r1, <frame index #n>, 0
so we must check for the second parameter being a register for this instruction
to be considered a reg-to-reg copy.
llvm-svn: 15244
2004-07-26 21:50:38 +00:00
Misha Brukman
a2cf775362
assert() on MachineInstr properties instead of checking them dynamically
...
llvm-svn: 15243
2004-07-26 21:35:58 +00:00
Misha Brukman
73687cfcc6
* Recognize `addi r1, r2, 0' a move instruction
...
* List formats of instructions currently recognized as moves
llvm-svn: 15242
2004-07-26 21:29:00 +00:00
Chris Lattner
87d624622f
Remove dead section
...
llvm-svn: 15241
2004-07-26 21:16:55 +00:00
Misha Brukman
3e7a88e9db
Fix indentation: should be 2 spaces.
...
llvm-svn: 15240
2004-07-26 18:48:58 +00:00
Misha Brukman
61ff8a374f
Fix file header as it has been renamed.
...
llvm-svn: 15239
2004-07-26 18:45:48 +00:00
Misha Brukman
ccd1114518
Renamed files to have the `X86' prefix for uniqueness purposes.
...
All CVS history was renamed, the *,v were copied over. No worries.
llvm-svn: 15238
2004-07-26 18:43:11 +00:00
Misha Brukman
288289f9a7
* Rewrote casts
...
* Implemented GEP folding
* Dynamically output global address stuff once per function
* Fix casting fp<->short/byte
Patch contributed by Nate Begeman.
llvm-svn: 15237
2004-07-26 18:13:24 +00:00
Misha Brukman
bf2ad22ff6
Increment the label number in runOnFunction() rather than while printing out
...
some instruction. Patch by Nate Begeman.
llvm-svn: 15236
2004-07-26 16:28:33 +00:00
Misha Brukman
796cc48f99
More notes on bugs, unimplemented features, and suggested code improvements.
...
Written by Nate Begeman.
llvm-svn: 15235
2004-07-26 16:23:55 +00:00
Misha Brukman
29efda2e6b
Fix subtracting values > 2^15 in the prologue/epilogue, by Nate Begeman.
...
llvm-svn: 15234
2004-07-26 16:22:52 +00:00
Reid Spencer
4cdc23b925
Added another test case for double FP constants as well.
...
llvm-svn: 15233
2004-07-26 15:04:13 +00:00
Chris Lattner
59aff88abe
Implement DeadStoreElim/alloca.llx by observing that allocas are dead at the
...
end of the function (either return or unwind)
llvm-svn: 15232
2004-07-26 06:14:11 +00:00
Chris Lattner
780516c8e1
New testcase
...
llvm-svn: 15231
2004-07-26 06:11:42 +00:00