Misha Brukman
a594740016
Correctly print out long branches, assert on finding pseudo instr COND_BRANCH
...
Patch by Nate Begeman.
llvm-svn: 15286
2004-07-27 18:40:39 +00:00
Misha Brukman
09396bf158
Run the branch selection pass right before the asm printer.
...
Patch by Nate Begeman.
llvm-svn: 15285
2004-07-27 18:39:34 +00:00
Misha Brukman
4d66925aea
Remove empty unused method processFunctionBeforeFrameFinalized()
...
llvm-svn: 15284
2004-07-27 18:38:40 +00:00
Misha Brukman
83df71af70
Add COND_BRANCH pseudo instruction, patch by Nate Begeman.
...
llvm-svn: 15283
2004-07-27 18:35:54 +00:00
Misha Brukman
5b092c15c6
Build COND_BRANCHes which may become long or short, decided by a later pass.
...
Patch by Nate Begeman.
llvm-svn: 15282
2004-07-27 18:35:23 +00:00
Misha Brukman
a783ee55a9
Moved definition of invertPPCBranchOpcode() into PowerPCInstrInfo class.
...
Patch by Nate Begeman.
llvm-svn: 15281
2004-07-27 18:34:11 +00:00
Misha Brukman
ef8cf023a0
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
f4c1d1ee34
TargetInstrInfo::getNOPOpCode() has been replaced by a reference to V9::NOP.
...
llvm-svn: 15279
2004-07-27 17:43:24 +00:00
Brian Gaeke
64f51df06d
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
b788626dc8
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
38b79e8fbc
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
9eaa879f49
Fixed saving/restoring LR unconditionally, only done as necessary.
...
llvm-svn: 15275
2004-07-27 17:17:48 +00:00
Misha Brukman
bc1a2f96a6
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
26978c3730
LR is a 32-bit int reg
...
llvm-svn: 15273
2004-07-27 17:15:32 +00:00
Misha Brukman
f1a7e941fb
MovePCtoLR (which is `bl' in disguise) modifies LR implicitly
...
llvm-svn: 15272
2004-07-27 17:15:05 +00:00
Misha Brukman
2bcffa484b
Register LR is callee-saved
...
llvm-svn: 15271
2004-07-27 17:14:34 +00:00
Misha Brukman
640ec1e5e6
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
5174f436d2
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
aa5b25eae6
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
036d2b0c4d
nuke pointless -debug output
...
llvm-svn: 15267
2004-07-27 08:03:18 +00:00
Chris Lattner
d138437ffc
New functionality
...
llvm-svn: 15266
2004-07-27 07:50:07 +00:00
Chris Lattner
cea15a64a2
Document new syntax
...
llvm-svn: 15265
2004-07-27 07:49:39 +00:00
Chris Lattner
b696462260
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
50eb771d37
Fix hoisting of void typed values, e.g. calls
...
llvm-svn: 15263
2004-07-27 07:38:32 +00:00
Chris Lattner
89c0c0ae3f
alloca void makes no sense
...
llvm-svn: 15262
2004-07-27 07:30:02 +00:00
Chris Lattner
731381dc0e
Remove a bogus assertion
...
llvm-svn: 15261
2004-07-27 07:22:21 +00:00
Chris Lattner
3a353e84b7
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
0373d994a0
new testcase
...
llvm-svn: 15259
2004-07-27 06:35:11 +00:00
Chris Lattner
e30d3c8292
Have some testcases
...
llvm-svn: 15258
2004-07-27 06:26:08 +00:00
Chris Lattner
cf146d4e6e
Add a note
...
llvm-svn: 15257
2004-07-27 04:00:54 +00:00
Chris Lattner
b46f558bed
Fix out of date comment
...
llvm-svn: 15256
2004-07-27 03:04:30 +00:00
Chris Lattner
7ef55da237
Simplify code and silence warning
...
llvm-svn: 15255
2004-07-27 02:34:49 +00:00
Chris Lattner
9b323c3521
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
0a0fc220cc
New testcase. DSE should delete all of the DEAD instructions.
...
llvm-svn: 15253
2004-07-27 02:19:27 +00:00
Chris Lattner
aa05a6e5a1
Make basicaa a bit more aggressive
...
llvm-svn: 15252
2004-07-27 02:18:52 +00:00
Chris Lattner
6b570266b8
basic-aa can actually provide simple mod/ref info
...
llvm-svn: 15251
2004-07-27 02:13:55 +00:00
Chris Lattner
782ab98c56
This was implemented back in march
...
llvm-svn: 15250
2004-07-27 01:59:42 +00:00
Chris Lattner
577fc3f576
Implement test/Regression/TableGen/ListSlices.td
...
llvm-svn: 15249
2004-07-27 01:01:21 +00:00
Chris Lattner
0ff7eb9ba9
New testcase for list slicing
...
llvm-svn: 15248
2004-07-27 01:00:56 +00:00
Chris Lattner
8bf9e06ddd
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
a559cb8e10
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
b5ed14486b
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
58499ead7d
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
6c125a92d7
assert() on MachineInstr properties instead of checking them dynamically
...
llvm-svn: 15243
2004-07-26 21:35:58 +00:00
Misha Brukman
43f1c4045a
* 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
7f50013b0e
Remove dead section
...
llvm-svn: 15241
2004-07-26 21:16:55 +00:00
Misha Brukman
a332a646a0
Fix indentation: should be 2 spaces.
...
llvm-svn: 15240
2004-07-26 18:48:58 +00:00
Misha Brukman
cf7d3af07f
Fix file header as it has been renamed.
...
llvm-svn: 15239
2004-07-26 18:45:48 +00:00
Misha Brukman
bca562404c
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
74e3a17958
* 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