Chris Lattner
236ced1487
All good classes with virtual functions should have virtual dtors...
...
llvm-svn: 7630
2003-08-06 05:39:03 +00:00
Chris Lattner
bb43caeb95
Add an instruction selector emitter skeleton
...
llvm-svn: 7629
2003-08-06 04:47:56 +00:00
Chris Lattner
36498143ba
convert over to using TableGen backends
...
llvm-svn: 7628
2003-08-06 04:36:35 +00:00
Chris Lattner
7179feb5e2
Switch code over to being a TableGenBackend
...
llvm-svn: 7627
2003-08-06 04:32:07 +00:00
Chris Lattner
4708d5ce31
Add more helper methods
...
llvm-svn: 7626
2003-08-06 04:31:26 +00:00
Chris Lattner
5f2e204a46
New common interface for backends to use
...
llvm-svn: 7625
2003-08-06 04:23:04 +00:00
Sumant Kowshik
5ca0380a65
Added POOLFLAGS option to run pool allocation
...
llvm-svn: 7624
2003-08-06 01:03:28 +00:00
Chris Lattner
9994870cb3
"fix" coding style stuff
...
Change some <>'s into <>'s
llvm-svn: 7623
2003-08-05 22:54:23 +00:00
Chris Lattner
385a6b2589
Completely eliminate the per-machine-instruction regsUsed set.
...
This substantially shrinks the size of each machine instruction, which should
make allocation faster and the cache footprint of the machine code lighter.
Here are some timings for code generation of the larger benchmarks we have.
This are timings of code generation phases of the X86 JIT, when compiled in
debug mode:
Before After Diff
164.gzip:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2031 0.1757 -15.6%
TOTAL 0.5585 0.4999 -11.7%
Ptrdist-bc:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2070 0.1933 - 7.1%
TOTAL 0.6972 0.6464 - 7.9%
197.parser:
InstSel 0.2148 0.2148 - 0.0%
RegAlloc 0.4941 0.4277 -15.5%
TOTAL 1.3749 1.2851 - 7.0%
175.vpr:
InstSel 0.2519 0.2109 -19.4%
RegAlloc 0.5976 0.5663 - 5.5%
TOTAL 1.6933 1.6347 - 3.5%
254.gap:
InstSel 1.1328 0.9921 -14.2%
RegAlloc 2.6933 2.4804 - 8.6%
TOTAL 7.7871 7.2499 - 7.4%
llvm-svn: 7622
2003-08-05 22:39:13 +00:00
Chris Lattner
30e987470f
Use a new local data structure instead of the MachineInstr::regsUsed set
...
llvm-svn: 7621
2003-08-05 22:11:13 +00:00
Chris Lattner
92f5fb598c
Add a map
...
llvm-svn: 7620
2003-08-05 22:09:31 +00:00
Chris Lattner
e62a2a76e5
Minor cleanups
...
llvm-svn: 7619
2003-08-05 22:03:27 +00:00
Chris Lattner
b05d3508d6
Physical registers no longer live in the regsUsed set for each machine instr
...
llvm-svn: 7618
2003-08-05 21:55:58 +00:00
Chris Lattner
020b544cbc
Do not insert physical regsiters into the regsUsed set
...
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
John Criswell
1943f88a79
Reverted back to using OR for cmp/mv operations for lex/yacc output.
...
The shell AND/OR operators short-circuit on command success/failure, which is
the inverse of exit status (i.e. 0 means success, non-zero means failure).
llvm-svn: 7616
2003-08-05 21:38:28 +00:00
John Criswell
4d79702a4c
Switched from using diff to cmp for two reasons:
...
o Not all versions of diff have the -q option
o The cmp program is probably faster than diff
Fixed the logic that only copies the file over if no differences are found.
llvm-svn: 7615
2003-08-05 21:21:58 +00:00
Tanya Lattner
dc3c9a8545
Fixed minor bug in SafeToHoist and made some changes suggested by Chris.
...
llvm-svn: 7614
2003-08-05 20:39:02 +00:00
Tanya Lattner
b96c7a6985
Added LICM test cases to:
...
1) Check that trapping instructionns that are not guaranteed to execute are not hoisted.
2) Check that trapping instructions that are guaranteed to execute are hoisted.
llvm-svn: 7613
2003-08-05 18:52:42 +00:00
Tanya Lattner
57c03df032
Fixed LICM bug that hoists trapping instructions that are not guaranteed to execute.
...
llvm-svn: 7612
2003-08-05 18:45:46 +00:00
Chris Lattner
adc5a89a3b
Minor changes:
...
* Expand most tabs into spaces
* Move #define DEBUG_TYPE to top of file to avoid warning
llvm-svn: 7611
2003-08-05 18:44:12 +00:00
Chris Lattner
61182a2021
Add more verbose comment
...
llvm-svn: 7610
2003-08-05 18:38:37 +00:00
Chris Lattner
44309a112f
Add a comment to the method decl
...
llvm-svn: 7609
2003-08-05 18:38:16 +00:00
Chris Lattner
3df51d517c
Remove unused method
...
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Sumant Kowshik
766e284526
Added declaration of mergeInGlobalsGraph
...
llvm-svn: 7607
2003-08-05 17:06:18 +00:00
Sumant Kowshik
1d869b78f5
Added function mergeInGlobalsGraph which merges in the entire globals graph with the graph of a function
...
llvm-svn: 7606
2003-08-05 17:04:41 +00:00
Sumant Kowshik
0383a65103
Major bug fixes including a memory leak and tracking some exceptional conditions. Also added support for including global and indirect call information in the DS graphs used by the pool allocation
...
llvm-svn: 7605
2003-08-05 17:01:54 +00:00
Chris Lattner
ee937c80ed
Specify DEBUG_TYPE's for the JIT debug messages
...
llvm-svn: 7604
2003-08-05 17:00:32 +00:00
Chris Lattner
21343336d6
This method has now been changed to preserve flags for us!
...
llvm-svn: 7603
2003-08-05 16:59:24 +00:00
Chris Lattner
cd4f4320b0
All callers of these methods actually wanted them to preserve the flags,
...
so get rid of the def/use parameters that were getting passed in.
**** This now changes the semantics of these methods to preserve the flags,
not clobber them!
llvm-svn: 7602
2003-08-05 16:58:46 +00:00
Sumant Kowshik
e815b78deb
Added the declaration of InlineIndirectCalls
...
llvm-svn: 7601
2003-08-05 16:56:59 +00:00
Chris Lattner
1d6ba3e359
Factor shared code
...
llvm-svn: 7600
2003-08-05 16:34:44 +00:00
Chris Lattner
edc8c54e16
Fix bug: SimplifyCFG/2003-08-05-InvokeCrash.ll
...
Fix bug: SimplifyCFG/2003-08-05-MishandleInvoke.ll
llvm-svn: 7599
2003-08-05 16:27:44 +00:00
Chris Lattner
cc88b0ad42
new testcases that simplifycfg breaks
...
llvm-svn: 7598
2003-08-05 16:11:36 +00:00
Misha Brukman
1e88cfb42e
* Removed `using' declaration, now use full namespace qualifier std::string
...
* Simplified code by using an inline function instead of copy-pasted code
llvm-svn: 7597
2003-08-05 16:01:50 +00:00
Chris Lattner
d1e2aaef4f
If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
...
narrowing, no matter what.
llvm-svn: 7596
2003-08-05 15:51:05 +00:00
Chris Lattner
463d6a5e7c
Implement TODO: print out short form of Invoke if possible
...
llvm-svn: 7595
2003-08-05 15:34:45 +00:00
Misha Brukman
689398fe76
Only test the vector of functions if it is non-empty.
...
llvm-svn: 7594
2003-08-05 15:26:21 +00:00
Misha Brukman
790a6f5e6c
Stop special-casing annul and predict bits (which are Sparc-specific anyway)
...
since those bits are now hard-coded in Sparc*.td files.
llvm-svn: 7593
2003-08-05 14:35:35 +00:00
Misha Brukman
5c68269dfd
* Set annul bit to be 0, because the Sparc backend currently does not use it.
...
* Use the name of the predict field instead of just the const 1 in the
Instruction.
llvm-svn: 7592
2003-08-05 14:34:38 +00:00
Chris Lattner
92a199dca7
Fix bugs handling ESP in alloca references
...
llvm-svn: 7591
2003-08-05 04:13:58 +00:00
Chris Lattner
9c9b4c54fa
No functional changes, comment the fix I just put in
...
llvm-svn: 7590
2003-08-05 03:59:01 +00:00
Chris Lattner
01349f463c
The CodeEmitterGenerator used to consider ANY uninitialized field as being an
...
operand (unless it's annul or predict). Now we only consider fields to be
operands if they are uninitialized AND used in the "Inst" field.
llvm-svn: 7589
2003-08-05 03:53:04 +00:00
Chris Lattner
506fa6843e
Revert previous change, and be really anal about what physical registers can do.
...
llvm-svn: 7588
2003-08-05 00:49:09 +00:00
Chris Lattner
7c257321c7
This is the real fix for the previous register allocator problem.
...
Physical registers should not float around.
llvm-svn: 7587
2003-08-05 00:48:47 +00:00
Misha Brukman
f7586ceeb2
Reformatted code to match the prevalent LLVM style; fit code into 80 columns.
...
llvm-svn: 7586
2003-08-05 00:02:06 +00:00
Misha Brukman
8f7304a32d
ElectricFence found this bug where we were reading past the vector boundary.
...
llvm-svn: 7585
2003-08-04 23:48:40 +00:00
Chris Lattner
4b637cc666
Don't bother calculating info unless its needed. May reduce number of stack slots created.
...
llvm-svn: 7584
2003-08-04 23:42:37 +00:00
Chris Lattner
815b85e3ba
* Fix spelling of 'necessary'
...
* Add a lot more DEBUG output, which is better structured than before
* Fix bug: Jello/2003-08-04-PhysRegLiveFailure.llx
llvm-svn: 7583
2003-08-04 23:36:39 +00:00
Chris Lattner
732a3883ed
New testcase, identified by Vikram, reduced by Brian
...
llvm-svn: 7582
2003-08-04 23:28:44 +00:00
Chris Lattner
148747e162
Add patterns for (mov R, R) (mov R, I) and subtracts. The moves are to enable
...
testing, the subtracts are because I was in the neighborhood.
llvm-svn: 7581
2003-08-04 21:18:19 +00:00