Chris Lattner
e74c843893
typo fix
...
llvm-svn: 29910
2006-08-27 12:47:48 +00:00
Chris Lattner
91f098c9f7
Add external definitions for commonly-used template specializations and add
...
anchor methods to others. This eliminates the vtable/template method bloat
in .o files that defining a cl::opt used to impose (~4K per .o file for one
cp::opt<unsigned>).
llvm-svn: 29909
2006-08-27 12:45:47 +00:00
Chris Lattner
a72e220a25
New place to put compiler-specific functionality. This replaces Visibility.h,
...
and provides macros that can be used to make explicit instantiations of
template specializations, which is a gcc-specific feature.
llvm-svn: 29908
2006-08-27 12:42:45 +00:00
Evan Cheng
a6f81f1863
Do not use getTargetNode() and SelectNodeTo() which takes more than 3
...
SDOperand arguments. Use the variants which take an array and number instead.
llvm-svn: 29907
2006-08-27 08:14:06 +00:00
Evan Cheng
10a7268b85
Do not emit getTargetNode() and SelectNodeTo() which takes more than 3
...
SDOperand arguments. Use the variants which take an array and number instead.
llvm-svn: 29906
2006-08-27 08:11:28 +00:00
Evan Cheng
6e08e7035f
Eliminate SelectNodeTo() and getTargetNode() variants which take more than
...
3 SDOperand operands. They are replaced by versions which take an array
of SDOperand and the number of operands.
llvm-svn: 29905
2006-08-27 08:08:54 +00:00
Chris Lattner
5d7bd21c41
make optional pointer really optional
...
llvm-svn: 29904
2006-08-27 07:11:54 +00:00
Chris Lattner
3c5fa40194
Fix target matching weights, so that ppc-darwin modules are codegen with the
...
ppc target, not the itanium target, when run on an itanium machine.
This should fix the CodeGen/PowerPC regtest failures on itanium.
llvm-svn: 29903
2006-08-26 21:33:05 +00:00
Nate Begeman
f94ddf0d12
Properly size the string table, and emit symbol table and string table
...
entries in the correct order, fixing several fixmes.
llvm-svn: 29902
2006-08-26 15:46:34 +00:00
Evan Cheng
1c3d571e4b
SelectNodeTo now returns a SDNode*.
...
llvm-svn: 29901
2006-08-26 08:00:10 +00:00
Evan Cheng
36c38110c4
Minor getCopyToReg() call change.
...
llvm-svn: 29900
2006-08-26 07:39:28 +00:00
Evan Cheng
791a1e1787
Improved codegen due to Chris' live interval joining changes.
...
llvm-svn: 29899
2006-08-26 07:38:36 +00:00
Evan Cheng
2db7799507
Select() no longer require Result operand by reference.
...
llvm-svn: 29898
2006-08-26 05:34:46 +00:00
Evan Cheng
930bc5331d
Remove dead code.
...
llvm-svn: 29897
2006-08-26 01:34:15 +00:00
Chris Lattner
86106b8ef4
Simplifications to liveinterval analysis, no functionality change.
...
llvm-svn: 29896
2006-08-26 01:28:16 +00:00
Evan Cheng
b246ad7b2f
Match tblgen changes.
...
llvm-svn: 29895
2006-08-26 01:07:58 +00:00
Evan Cheng
57893e39fe
Match tblgen changes; clean up.
...
llvm-svn: 29894
2006-08-26 01:05:16 +00:00
Evan Cheng
2cc7e2ce0c
A bit more clean up.
...
llvm-svn: 29893
2006-08-26 01:02:19 +00:00
Evan Cheng
b96b719724
- Clean up tablegen dag isel generator code.
...
- Clean up the code generated by tablegen:
* AddToISelQueue now takes one argument.
* ComplexPattern matching condition can now be shared.
* Eliminate passing unnecessary arguments to emit routines.
* Eliminate some unneeded SDOperand declarations in select routines.
* Other minor clean ups.
- This reduces foot print slightly: X86ISelDAGToDAG.o is reduced from 971k
to 823k.
llvm-svn: 29892
2006-08-26 00:59:04 +00:00
Chris Lattner
26bde5d791
Give a good error message when we try to jit inline asm.
...
llvm-svn: 29891
2006-08-26 00:47:03 +00:00
Chris Lattner
ec9c7fa089
Completely change the way that joining with physregs is implemented. This
...
paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.
llvm-svn: 29890
2006-08-25 23:41:24 +00:00
Evan Cheng
92239fd096
Add a comment.
...
llvm-svn: 29889
2006-08-25 23:29:06 +00:00
Jim Laskey
e9b0e1014e
Tidy up.
...
llvm-svn: 29888
2006-08-25 22:56:30 +00:00
Owen Anderson
aac2dbf9dd
Fix a crash related to updating Phi nodes in the original header block. This was
...
causing a crash in 175.vpr
llvm-svn: 29887
2006-08-25 22:13:55 +00:00
Owen Anderson
e02cb4cda0
Add an assertion to check that we're really preserving LCSSA.
...
llvm-svn: 29886
2006-08-25 22:12:36 +00:00
Evan Cheng
ccbb645459
Encode pc-relative conditional branch offset as pc+(num of bytes / 4). The
...
asm printer will print it as offset*4. e.g. bne cr0, $+8.
The PPC code emitter was expecting the offset to be number of instructions, not
number of bytes. This fixes a whole bunch of JIT failures.
llvm-svn: 29885
2006-08-25 21:54:44 +00:00
Reid Spencer
9b5ea0704e
For PR797:
...
Make the Win32 code exception free (untested/uncompiled) which forced some
interface changes which had ripple effect. This should be the last of 797.
llvm-svn: 29884
2006-08-25 21:37:17 +00:00
Reid Spencer
f653398f0c
Doh! Commit the change that turns ON -fno-exceptions.
...
llvm-svn: 29883
2006-08-25 20:56:59 +00:00
Reid Spencer
e2b7b29a82
For PR797:
...
Final commit for this bug. This removes the last EH holdouts in LLVM
and turns off exception support by using the -fno-exceptions option. This
leads to the following reduction in library and executable sizes:
DEBUG BUILD RELEASE BUILD
before after delta before after delta
lib 162,328K 157,616K 4,712 17,864K 16,416K 1,448K
bin 571,444K 557,156K 14,288 63,296K 56,996K 6,300K
Debug Improvement: 19,000K (2.59%)
Release Improvement: 7,748K (9.55%)
llvm-svn: 29882
2006-08-25 19:54:53 +00:00
Jim Laskey
3af6953257
Consolidate callee saved register information so that it can me used by debug
...
information and exception handling.
llvm-svn: 29881
2006-08-25 19:45:51 +00:00
Jim Laskey
c5bcc6d451
Fix some comments.
...
llvm-svn: 29880
2006-08-25 19:40:59 +00:00
Jim Laskey
7369725a36
Allow for register numbers > 31.
...
llvm-svn: 29879
2006-08-25 19:39:52 +00:00
Rafael Espindola
39c3b906cb
test case for varargs functions
...
llvm-svn: 29877
2006-08-25 17:57:36 +00:00
Rafael Espindola
91954ae78f
use @ for comments
...
store LR in an arbitrary stack slot
add support for writing varargs functions
llvm-svn: 29876
2006-08-25 17:55:16 +00:00
Reid Spencer
741140980f
For PR797:
...
Remove exception throwing/handling from lib/Bytecode, and adjust its users
to compensate for changes in the interface.
llvm-svn: 29875
2006-08-25 17:43:11 +00:00
Owen Anderson
b1d980f98a
Reapply the indvars patch, since nothing blew up last night.
...
llvm-svn: 29874
2006-08-25 17:41:25 +00:00
Chris Lattner
bfd3ac7c39
Fix a race condition in the makefile that broke grawp's tester last night.
...
llvm-svn: 29873
2006-08-25 17:15:23 +00:00
Jim Laskey
60d8159a81
Bring Xcode project up to date.
...
llvm-svn: 29872
2006-08-25 14:16:49 +00:00
Nate Begeman
ce8ab85260
Get closer to handling globals correctly. We now generally get them in the
...
right section.
llvm-svn: 29871
2006-08-25 06:36:58 +00:00
Reid Spencer
6ea5c4eafb
Fix a bug introduced by a change in the Archive::writeToDisk interface.
...
llvm-svn: 29870
2006-08-25 05:29:36 +00:00
Reid Spencer
ebf083391f
Fix a bug caused by change in the interface of Archive::writeToDisk.
...
llvm-svn: 29869
2006-08-25 05:28:17 +00:00
Owen Anderson
596b22375a
Revert my previous patch. Since there are some major changes that went in today,
...
I'm going to wait to put this in HEAD until tomorrow, so as not to clutter the nightly
tester.
llvm-svn: 29868
2006-08-25 03:45:57 +00:00
Owen Anderson
54c87a08ab
Specify that indvars actually preserve LCSSA. This has been done for a while, but I
...
forgot to put in the analysis usage.
llvm-svn: 29867
2006-08-25 03:32:13 +00:00
Reid Spencer
d813eae003
For PR797:
...
Remove exception handling from the bytecode archiver and adjust the llvm-ar
tool to accommodate the new interfaces.
llvm-svn: 29866
2006-08-24 23:45:08 +00:00
Chris Lattner
25bd2cc1b9
When replacing value numbers, make sure to compactify the value # space.
...
llvm-svn: 29865
2006-08-24 23:22:59 +00:00
Chris Lattner
b3ab5fac28
We compile this into:
...
_swap_16:
slwi r2, r3, 24
rlwimi r2, r3, 8, 8, 15
srwi r3, r2, 16
blr
now.
llvm-svn: 29864
2006-08-24 23:06:02 +00:00
Chris Lattner
b8292ee9e7
Owen implemented this.
...
llvm-svn: 29863
2006-08-24 23:03:33 +00:00
Chris Lattner
28645a15bd
Take advantage of the recent improvements to the liveintervals set (tracking
...
instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:
1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
better solution.
3. Implements PR865, "coallescing" away the second copy in code like:
A = B
...
B = A
This also includes changes to symbolically print registers in intervals
when possible.
llvm-svn: 29862
2006-08-24 22:43:55 +00:00
Reid Spencer
45b86c1ebe
For PR738:
...
Demote check for bison from error to warning and make sure that the
makefile can handle an empty definition for BISON variable.
llvm-svn: 29861
2006-08-24 22:41:20 +00:00
Reid Spencer
d5644a74d8
Remove a character to avoid line exceeding 80 cols.
...
llvm-svn: 29860
2006-08-24 22:39:25 +00:00