1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
Commit Graph

7323 Commits

Author SHA1 Message Date
Sumant Kowshik
7f7a4a1472 Added POOLFLAGS option to run pool allocation
llvm-svn: 7624
2003-08-06 01:03:28 +00:00
Chris Lattner
506e6abb67 "fix" coding style stuff
Change some <>'s into &lt;&gt;'s

llvm-svn: 7623
2003-08-05 22:54:23 +00:00
Chris Lattner
138a3fc9ab 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
5a778ec126 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
937abf2262 Add a map
llvm-svn: 7620
2003-08-05 22:09:31 +00:00
Chris Lattner
a38b57808a Minor cleanups
llvm-svn: 7619
2003-08-05 22:03:27 +00:00
Chris Lattner
18b0b92033 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
a826c8d485 Do not insert physical regsiters into the regsUsed set
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
John Criswell
bc2e14bd15 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
a40b9262ec 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
6fbe85279f 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
9d218f68d1 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
48745a598c 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
629c78afe3 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
e2ee62c91c Add more verbose comment
llvm-svn: 7610
2003-08-05 18:38:37 +00:00
Chris Lattner
bd872cdaaf Add a comment to the method decl
llvm-svn: 7609
2003-08-05 18:38:16 +00:00
Chris Lattner
8da1b00db6 Remove unused method
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Sumant Kowshik
9d60ea4810 Added declaration of mergeInGlobalsGraph
llvm-svn: 7607
2003-08-05 17:06:18 +00:00
Sumant Kowshik
1a4fce3511 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
18c49a775f 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
7e9e83e817 Specify DEBUG_TYPE's for the JIT debug messages
llvm-svn: 7604
2003-08-05 17:00:32 +00:00
Chris Lattner
54c2758e95 This method has now been changed to preserve flags for us!
llvm-svn: 7603
2003-08-05 16:59:24 +00:00
Chris Lattner
b047a0d449 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
d0be623358 Added the declaration of InlineIndirectCalls
llvm-svn: 7601
2003-08-05 16:56:59 +00:00
Chris Lattner
6488844c2e Factor shared code
llvm-svn: 7600
2003-08-05 16:34:44 +00:00
Chris Lattner
488b0e52a8 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
e465467534 new testcases that simplifycfg breaks
llvm-svn: 7598
2003-08-05 16:11:36 +00:00
Misha Brukman
8cedc4ffa6 * 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
cd4179f054 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
b44a9376d1 Implement TODO: print out short form of Invoke if possible
llvm-svn: 7595
2003-08-05 15:34:45 +00:00
Misha Brukman
65bebf03f0 Only test the vector of functions if it is non-empty.
llvm-svn: 7594
2003-08-05 15:26:21 +00:00
Misha Brukman
7452a521b3 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
c666ae831c * 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
297f7d2451 Fix bugs handling ESP in alloca references
llvm-svn: 7591
2003-08-05 04:13:58 +00:00
Chris Lattner
8f8fbd7106 No functional changes, comment the fix I just put in
llvm-svn: 7590
2003-08-05 03:59:01 +00:00
Chris Lattner
d8cbdc4c67 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
6fece1bf61 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
17fc21b5fa 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
3b098f3fdd 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
1ada2fd28c 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
0e8197ad06 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
8934560bd3 * 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
11c55b01b0 New testcase, identified by Vikram, reduced by Brian
llvm-svn: 7582
2003-08-04 23:28:44 +00:00
Chris Lattner
cf51f31c3e 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
Chris Lattner
900d31f5ba Change comments into something that TableGen can read!
llvm-svn: 7580
2003-08-04 21:08:29 +00:00
Chris Lattner
a06042d124 Allow instructions to have a DAG pattern associated with them.
Define a few preliminary node types.

llvm-svn: 7579
2003-08-04 21:07:37 +00:00
Chris Lattner
cd1aec5a9d Rename register classes to be upper case to make it obvious that they are X86
specific in the tree patterns

llvm-svn: 7578
2003-08-04 20:58:29 +00:00
Chris Lattner
11ad73f47e Parse DAG patterns
llvm-svn: 7577
2003-08-04 20:44:43 +00:00
Chris Lattner
3aa9da1f7f add support for DagInit initializers, which represent DAG patterns
llvm-svn: 7576
2003-08-04 20:44:17 +00:00
Chris Lattner
b0c4251c0b New testcase
llvm-svn: 7575
2003-08-04 20:43:48 +00:00