Evan Cheng
6a34939af6
Added jump table address relocation.
...
llvm-svn: 28908
2006-06-23 01:02:37 +00:00
Evan Cheng
0c9b90aba3
Eliminate unneeded parameter.
...
llvm-svn: 28907
2006-06-22 00:02:55 +00:00
Evan Cheng
fc1b27dad1
variable_ops instructions such as call can have any number of operands.
...
llvm-svn: 28906
2006-06-21 23:37:07 +00:00
Reid Spencer
bb6e26492e
Whoops, missed a couple more C-style casts.
...
llvm-svn: 28905
2006-06-21 22:19:00 +00:00
Reid Spencer
81a0d25811
Use C++ style casts instead of C-style casts to shut up compiler warnings
...
when compiling with -pedantic. Passes regression tests on Linux.
llvm-svn: 28904
2006-06-21 21:54:54 +00:00
Chris Lattner
161a84ebeb
Add targets for generating .s file in addition to .o files.
...
llvm-svn: 28903
2006-06-21 21:01:20 +00:00
Chris Lattner
085c7153da
Factor a bunch of rules together, no functionality change.
...
llvm-svn: 28902
2006-06-21 20:58:03 +00:00
Chris Lattner
6a871e1b64
Add more anonymous namespaces to make it clear that these are private classes
...
llvm-svn: 28901
2006-06-21 18:13:36 +00:00
Chris Lattner
41c173c68a
Remove unneeded libs
...
llvm-svn: 28900
2006-06-21 17:26:13 +00:00
Reid Spencer
c95970be9d
For PR811:
...
Don't both with the "C" and "cc" extensions as they aren't common and they
the "C" extension conflicts with the "c" extension on operating systems
that have case insensitive file names.
llvm-svn: 28899
2006-06-21 17:21:39 +00:00
Chris Lattner
1c12a881fb
Add some out-of-line virtual dtors so that the class has a "home", preventing
...
vtables for (e.g.) Instruction from being emitted into every .o file.
llvm-svn: 28898
2006-06-21 16:53:47 +00:00
Chris Lattner
7aa4590f67
fix typo
...
llvm-svn: 28897
2006-06-21 16:53:00 +00:00
Andrew Lenharth
680ac12e53
Add memory operand and int regs
...
llvm-svn: 28896
2006-06-21 15:42:36 +00:00
Andrew Lenharth
b0316eada6
inline asm, at least for floats
...
llvm-svn: 28895
2006-06-21 13:37:27 +00:00
Jim Laskey
e7235645a2
fix typos
...
llvm-svn: 28894
2006-06-21 11:08:10 +00:00
Andrew Lenharth
336313ce3d
fix argument problem
...
llvm-svn: 28893
2006-06-21 01:00:43 +00:00
Chris Lattner
dc38e6f322
Correct returns of 64-bit values, though they seemed to work before...
...
llvm-svn: 28892
2006-06-21 00:34:03 +00:00
Evan Cheng
cb8cc7bdef
Fix non-64-bit clean code.
...
llvm-svn: 28891
2006-06-21 00:29:14 +00:00
Chris Lattner
1f1b096142
Make these predicates correct in 64-bit mode too.
...
llvm-svn: 28890
2006-06-20 23:21:20 +00:00
Chris Lattner
52a956da52
Rename OR4 -> OR. Move some PPC64-specific stuff to the 64-bit file
...
llvm-svn: 28889
2006-06-20 23:18:58 +00:00
Chris Lattner
5705d4d519
remove unused flag
...
llvm-svn: 28888
2006-06-20 23:15:07 +00:00
Chris Lattner
9d65f3507e
add some logical ops
...
llvm-svn: 28887
2006-06-20 23:11:59 +00:00
Chris Lattner
7a856a6d88
remove some unused patterns
...
llvm-svn: 28886
2006-06-20 23:11:36 +00:00
Chris Lattner
d881f8257b
Add some more immediate patterns. This allows us to compile:
...
void test6() {
Y = 0xABCD0123BCDE4567;
}
into:
_test6:
lis r2, -21555
lis r3, ha16(_Y)
ori r2, r2, 291
rldicr r2, r2, 32, 31
oris r2, r2, 48350
ori r2, r2, 17767
std r2, lo16(_Y)(r3)
blr
llvm-svn: 28885
2006-06-20 23:03:01 +00:00
Chris Lattner
9834ad2fc6
Instead of li/xoris use li/oris. Note that this doesn't work if bit 15 is
...
set, so disable the pattern in that case.
llvm-svn: 28884
2006-06-20 22:38:59 +00:00
Chris Lattner
7e742e46ac
Add some 64-bit logical ops.
...
Split imm16Shifted into a sext/zext form for 64-bit support.
Add some patterns for immediate formation. For example, we now compile this:
static unsigned long long Y;
void test3() {
Y = 0xF0F00F00;
}
into:
_test3:
li r2, 3840
lis r3, ha16(_Y)
xoris r2, r2, 61680
std r2, lo16(_Y)(r3)
blr
GCC produces:
_test3:
li r0,0
lis r2,ha16(_Y)
ori r0,r0,61680
sldi r0,r0,16
ori r0,r0,3840
std r0,lo16(_Y)(r2)
blr
llvm-svn: 28883
2006-06-20 22:34:10 +00:00
Evan Cheng
a7bd00b451
Added --with-extra-options=opts to specify additional options to build LLVM and run tests.
...
llvm-svn: 28882
2006-06-20 22:16:32 +00:00
Evan Cheng
164a221b65
__i386__, __i386, etc. are not defined for x86-64. Use __x86_64__.
...
llvm-svn: 28881
2006-06-20 22:11:12 +00:00
Chris Lattner
d6e160d14d
64-bit bugfix: 0xFFFF0000 cannot be formed with a single lis.
...
llvm-svn: 28880
2006-06-20 21:39:30 +00:00
Chris Lattner
2d4e8f7e86
Add some patterns for globals, so we can now compile this:
...
static unsigned long long X, Y;
void test1() {
X = Y;
}
into:
_test1:
lis r2, ha16(_Y)
lis r3, ha16(_X)
ld r2, lo16(_Y)(r2)
std r2, lo16(_X)(r3)
blr
llvm-svn: 28879
2006-06-20 21:23:06 +00:00
Jim Laskey
4810c26d04
add subroutine types
...
llvm-svn: 28878
2006-06-20 21:13:20 +00:00
Chris Lattner
9fa620ed77
remove quotes for better consistency
...
llvm-svn: 28877
2006-06-20 20:56:03 +00:00
Chris Lattner
4c65c0e7d2
more significant moving of stuff around.
...
llvm-svn: 28876
2006-06-20 20:54:47 +00:00
Chris Lattner
bb1e75c52d
Fix broken links, remove author information, add brief summary.
...
llvm-svn: 28875
2006-06-20 20:47:38 +00:00
Jim Laskey
0a9e837b6f
Add support for function types.
...
llvm-svn: 28874
2006-06-20 19:41:06 +00:00
Evan Cheng
9e7e4b5d85
Allow LLVM to be built with extra options.
...
llvm-svn: 28873
2006-06-20 18:50:48 +00:00
Evan Cheng
28d96e0bb8
Rename EXTRA_FLAGS to EXTRA_OPTIONS.
...
llvm-svn: 28872
2006-06-20 18:49:13 +00:00
John Criswell
ac8b8c57ae
Added LLVM publications describing the LLVM compiler infrastructure.
...
llvm-svn: 28871
2006-06-20 18:21:31 +00:00
John Criswell
08907c7e39
Added the privbracket project to the list of projects to auto-configure.
...
llvm-svn: 28870
2006-06-20 17:44:40 +00:00
Andrew Lenharth
5fec2abe9b
Fix build on old compilers
...
llvm-svn: 28869
2006-06-20 15:32:17 +00:00
Chris Lattner
3c71a13e06
Fix an error message regression. Print:
...
LI8: (LI8:i64 (imm:i64):$imm)
instead of:
LI8: (LI8:MVT::i64 (imm:MVT::i64):$imm)
llvm-svn: 28868
2006-06-20 00:56:37 +00:00
Chris Lattner
868a75bec6
Remove some now-unneeded casts from instruction patterns. With the casts
...
removed, tblgen produces identical output to with them in.
llvm-svn: 28867
2006-06-20 00:39:56 +00:00
Chris Lattner
94d18df658
Add some patterns for ppc64
...
llvm-svn: 28866
2006-06-20 00:38:36 +00:00
Chris Lattner
c23e641055
Don't require src/dst patterns to be able to fully resolve their types,
...
because information about one can help refine the other. This allows us to
write:
def : Pat<(i32 (extload xaddr:$src, i8)),
(LBZX xaddr:$src)>;
as:
def : Pat<(extload xaddr:$src, i8),
(LBZX xaddr:$src)>;
because tblgen knows LBZX returns i32.
llvm-svn: 28865
2006-06-20 00:31:27 +00:00
Chris Lattner
dbec49d574
Remove some ugly now-redundant casts.
...
llvm-svn: 28864
2006-06-20 00:25:29 +00:00
Chris Lattner
9500b343db
Make sure to use the result of the pattern to infer the result type of the
...
instruction, and the result type of the instruction to refine the pattern.
This allows us to write things like this:
def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (v2i64 VR128:$src)>;
as:
def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (VR128:$src)>
and fixes a ppc64 issue.
llvm-svn: 28863
2006-06-20 00:18:02 +00:00
Chris Lattner
55594634d7
Fix some mismatched type constraints
...
llvm-svn: 28862
2006-06-20 00:12:37 +00:00
Jim Laskey
2837e3204f
References need to be section relative.
...
llvm-svn: 28861
2006-06-19 19:49:42 +00:00
Evan Cheng
cd58e9d8b9
Minor clean up.
...
llvm-svn: 28860
2006-06-19 19:25:30 +00:00
Andrew Lenharth
a565dfda8e
Do partial inlining in BU. This resolves more call sites. Also add options to merge in globals during recursion and to back annotate DSNodes when function pointers are resolved. This makes PA work for a whole lot more things (unresolved call sites being what has been killing various DSA based passes)
...
llvm-svn: 28859
2006-06-19 18:23:36 +00:00