Chris Lattner
960acb008b
implement cast.ll:test35. With this, we recognize:
...
unsigned short swp(unsigned short a) {
return ((a & 0xff00) >> 8 | (a & 0x00ff) << 8);
}
as an idiom for bswap.
llvm-svn: 32011
2006-11-29 07:18:39 +00:00
Chris Lattner
19d72c9f4f
new testcase
...
llvm-svn: 32010
2006-11-29 07:17:32 +00:00
Chris Lattner
d747f015ff
Teach instcombine to turn trunc(srl x, c) -> srl (trunc(x), c) when safe.
...
This implements InstCombine/cast.ll:test34. It fires hundreds of times on
176.gcc.
llvm-svn: 32009
2006-11-29 07:04:07 +00:00
Chris Lattner
544dfa013c
new testcase
...
llvm-svn: 32008
2006-11-29 07:03:00 +00:00
Chris Lattner
7b34c1391a
This fails on mainline.
...
llvm-svn: 32007
2006-11-29 05:19:32 +00:00
Chris Lattner
a7942b7bbd
Implement Regression/Transforms/InstCombine/bswap-fold.ll,
...
folding seteq (bswap(x)), c -> seteq(x,bswap(c))
llvm-svn: 32006
2006-11-29 05:02:16 +00:00
Chris Lattner
e7f83dcf4b
new testcase, bswaps should be eliminated.
...
llvm-svn: 32005
2006-11-29 05:00:14 +00:00
Evan Cheng
8facb43593
16-byte stack alignment for X86-64 ELF. Patch by Dan Gohman.
...
llvm-svn: 32004
2006-11-29 02:00:40 +00:00
Evan Cheng
feba507a97
Fix for PR1023 by Dan Gohman.
...
llvm-svn: 32003
2006-11-29 01:58:12 +00:00
Evan Cheng
79ca238966
Add test cases for PR1022, 1023.
...
llvm-svn: 32002
2006-11-29 01:57:06 +00:00
Chris Lattner
38084725a2
Upgrade the ugly darwin 64-bit bswap idiom (bswap %eax / bswap %edx /
...
xchgl %eax, %edx) to llvm.bswap.i64. This compiles:
long long test2(long long A) {
return _OSSwapInt64(A);
}
to:
_test2:
movl 8(%esp), %eax
movl 4(%esp), %edx
bswapl %eax
bswapl %edx
ret
instead of:
_test2:
movl 8(%esp), %edx
movl 4(%esp), %eax
bswap %eax
bswap %edx
xchgl %eax, %edx
ret
GCC manages (with -fomit-frame-pointer) the uglier:
_test2:
subl $4, %esp
movl 8(%esp), %eax
movl 12(%esp), %edx
bswap %eax
bswap %edx
xchgl %eax, %edx
addl $4, %esp
ret
llvm-svn: 32001
2006-11-29 01:48:01 +00:00
Evan Cheng
6e12a052ff
Fix for PR1022 (folding loads of static initializers) by Dan Gohman.
...
llvm-svn: 32000
2006-11-29 01:38:07 +00:00
Chris Lattner
0fc6ae0c3d
Trivially lower 'bswap $0' into llvm.bswap. This fixes hexxagon with the
...
JIT on darwin/x86, which has htonl implemented as inline asm.
llvm-svn: 31999
2006-11-29 01:14:06 +00:00
Bill Wendling
18739dc03f
WTF? These weird newlines got in there...
...
llvm-svn: 31998
2006-11-29 01:14:00 +00:00
Chris Lattner
90f4238c38
add a hook to allow targets to hack on inline asms to lower them to llvm
...
when they want to.
llvm-svn: 31997
2006-11-29 01:12:32 +00:00
Reid Spencer
a736fdf216
Join a split line.
...
llvm-svn: 31996
2006-11-29 01:11:01 +00:00
Bill Wendling
5c3966aa68
Converted to using llvm streams instead of <iostream>s
...
llvm-svn: 31992
2006-11-29 00:39:47 +00:00
Bill Wendling
afd54eb8b6
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Bill Wendling
a531ac291c
Convert to using llvm streams instead of iostreams.
...
llvm-svn: 31989
2006-11-28 23:33:06 +00:00
Bill Wendling
a38b3e15be
Support for llvm_ostreams.
...
llvm-svn: 31988
2006-11-28 23:31:42 +00:00
Andrew Lenharth
904ca9c688
gcc doesn't like an empty colbber list
...
llvm-svn: 31987
2006-11-28 23:07:32 +00:00
Bill Wendling
be6ce9d1c7
Use ostream instead of iostream
...
llvm-svn: 31986
2006-11-28 22:49:32 +00:00
Bill Wendling
787b77320f
Use llvm streams instead of <iostream>
...
llvm-svn: 31985
2006-11-28 22:48:48 +00:00
Bill Wendling
6c1740f31f
Removed #include <iostream> and used llvm streams
...
llvm-svn: 31984
2006-11-28 22:47:12 +00:00
Bill Wendling
597d451fea
Removed some of the iostream #includes. Moved towards converting to using
...
llvm streams
llvm-svn: 31983
2006-11-28 22:46:12 +00:00
Bill Wendling
a60d8edfc9
Support for llvm streams.
...
llvm-svn: 31982
2006-11-28 22:45:17 +00:00
Chris Lattner
228bcd3802
Add a helper function
...
llvm-svn: 31981
2006-11-28 22:32:35 +00:00
Andrew Lenharth
f52ae7ec72
Identities are default now
...
llvm-svn: 31980
2006-11-28 22:28:08 +00:00
Andrew Lenharth
8b59fd03c2
Make identity default, and fix PR1020
...
llvm-svn: 31979
2006-11-28 22:25:32 +00:00
Bill Wendling
f89955be1b
Added a temporary hack to get the llvm-streams to work for future checkins.
...
llvm-svn: 31978
2006-11-28 22:21:29 +00:00
Reid Spencer
116ad83aa0
Undo the last patch until 253.perlbmk passes with these changes.
...
llvm-svn: 31977
2006-11-28 20:23:51 +00:00
Evan Cheng
69b1825488
New entries.
...
llvm-svn: 31976
2006-11-28 19:59:25 +00:00
Andrew Lenharth
7f739d5bdd
update comments
...
llvm-svn: 31975
2006-11-28 19:56:02 +00:00
Andrew Lenharth
212f15fa8a
Get the asminfo for the target most closely matching the module and use that for inline asm
...
llvm-svn: 31974
2006-11-28 19:53:36 +00:00
Andrew Lenharth
2675e23a7e
X86 asm -> gcc asm translation table (incomplete)
...
llvm-svn: 31973
2006-11-28 19:52:49 +00:00
Andrew Lenharth
ff35b449a0
Add per-target support for asm translation in the cbe
...
llvm-svn: 31972
2006-11-28 19:52:20 +00:00
Jim Laskey
40182179b6
Remove debug code.
...
llvm-svn: 31970
2006-11-28 18:27:02 +00:00
Jim Laskey
ec05b046c7
Prime text sections to improve branch locality in large object files.
...
llvm-svn: 31969
2006-11-28 18:21:52 +00:00
Jim Laskey
f4e2e009d9
32-bit int space was not accounted for properly in lowerCall.
...
llvm-svn: 31966
2006-11-28 14:53:52 +00:00
Reid Spencer
55f1fbee2e
Regenerate.
...
llvm-svn: 31965
2006-11-28 07:29:44 +00:00
Reid Spencer
d47017990b
Implement signedness caching for values, value lists, constants and
...
constant lists. This is just an internal change to the parser in
preparation for some backwards compatibility code that is to follow.
This will allow things like "uint 4000000000" to retain the unsignedness
of the integer constant as the value moves through the parser. In the
future, all integer types will be signless but parsing "uint" and friends
will be retained for backwards compatibility.
llvm-svn: 31964
2006-11-28 07:28:14 +00:00
Reid Spencer
59fe2d89ae
Remove 4 FIXME's from the CAST patch now that the back end is correctly
...
producing code for "trunc to bool". This passes all tests on Linux.
llvm-svn: 31963
2006-11-28 07:23:01 +00:00
Reid Spencer
d077fe70e9
Add an -append-exit-code option to bugpoint. This will cause bugpoint to
...
append "exit <retcode>" to the end of the output file. This is used by
the nightly tester to make bugpoint match the output generated by the
RunSafely.sh script so it doesn't find false positives.
llvm-svn: 31960
2006-11-28 07:04:10 +00:00
Reid Spencer
21052cd48f
Fix a typo.
...
llvm-svn: 31959
2006-11-28 06:14:06 +00:00
Bill Wendling
bc0d5f8bcb
Put the #include for a module first.
...
llvm-svn: 31958
2006-11-28 03:31:29 +00:00
Evan Cheng
b2a6b0dbad
Clean up.
...
llvm-svn: 31957
2006-11-28 02:25:34 +00:00
Evan Cheng
db8f19fb90
Fix indentation.
...
llvm-svn: 31956
2006-11-28 02:22:51 +00:00
Bill Wendling
dfc91897df
Changed to using LLVM streams.
...
llvm-svn: 31955
2006-11-28 02:09:03 +00:00
Bill Wendling
3f6f0fd028
Changed to using llvm streams.
...
llvm-svn: 31954
2006-11-28 02:08:17 +00:00
Bill Wendling
cd2f1a897f
Added helper function to transition to using llvm streams.
...
llvm-svn: 31953
2006-11-28 02:07:29 +00:00
Evan Cheng
8ddbdc70b7
Fix JIT encoding bugs for shift / rotate by one ops.
...
llvm-svn: 31952
2006-11-28 01:28:00 +00:00
Chris Lattner
e88ff3a961
testcase for pr1016
...
llvm-svn: 31951
2006-11-28 01:26:37 +00:00
Chris Lattner
3abb63651b
Fix PR1016
...
llvm-svn: 31950
2006-11-28 01:03:30 +00:00
Bill Wendling
5834fdb371
Removed #include <iostream> and replaced streams with llvm streams.
...
llvm-svn: 31949
2006-11-27 23:54:50 +00:00
Andrew Lenharth
e8c64aba11
Preliminary support for inline asm in the cbe. The target specific ugliness
...
is still in Writer, but issolated to a single function. This might be split
into something in each target directory. This is sufficient to get through
archie and an strcpy impl on linux-x86.
Module level asm is not handled.
llvm-svn: 31948
2006-11-27 23:50:49 +00:00
Evan Cheng
20350c4025
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
llvm-svn: 31947
2006-11-27 23:37:22 +00:00
Chris Lattner
5230e9175a
remove dead tag
...
llvm-svn: 31944
2006-11-27 21:53:28 +00:00
Chris Lattner
5d5916b4d1
Fix the dag combiner bug corresponding to PR1014.
...
llvm-svn: 31943
2006-11-27 21:50:02 +00:00
Chris Lattner
f36cc15a84
this doesn't pass with CVS HEAD.
...
llvm-svn: 31942
2006-11-27 20:01:48 +00:00
Chris Lattner
8e9a7b73d9
Fix PR1014 and InstCombine/2006-11-27-XorBug.ll.
...
llvm-svn: 31941
2006-11-27 19:55:07 +00:00
Reid Spencer
5fb4da8c5d
Add 3 more test cases for ptrtoint, fptoui and fptosi
...
llvm-svn: 31940
2006-11-27 19:54:23 +00:00
Chris Lattner
2c2e34b2c4
testcase for PR1014
...
llvm-svn: 31939
2006-11-27 19:47:22 +00:00
Reid Spencer
16eaffe595
When truncating to bool, it is necessary to & with 1 for all casts that
...
can result in a bool. Previously PtrToInt, FPToUI and FPToSI were missing
this operation.
llvm-svn: 31938
2006-11-27 18:51:06 +00:00
Bill Wendling
f790e9de2c
Protect against null streams.
...
llvm-svn: 31937
2006-11-27 10:45:49 +00:00
Bill Wendling
7339b8dbfd
Removed #include <iostream> and replaced with llvm_* streams.
...
llvm-svn: 31936
2006-11-27 10:09:12 +00:00
Reid Spencer
141519fbc0
Alter these tests to ensure they match a "test $1, X" X86 instruction that
...
is now generated by the LLVM backend for "trunc to bool" instructions.
llvm-svn: 31935
2006-11-27 05:08:03 +00:00
Reid Spencer
b3281892d9
Add a test to ensure a bitcast/and/trunc combination eliminates the bitcast.
...
llvm-svn: 31934
2006-11-27 05:06:58 +00:00
Chris Lattner
3da631f29a
For better or worse, load from i1 is assumed to be zero extended. Do not
...
form a load from i1 from larger loads that may not be zext'd.
llvm-svn: 31933
2006-11-27 04:40:53 +00:00
Chris Lattner
db18938355
If a brcond condition is promoted, make sure to zero extend it, even if not
...
expanded into BR_CC.
llvm-svn: 31932
2006-11-27 04:39:56 +00:00
Reid Spencer
6c38f0bb07
For PR950:
...
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
2006-11-27 01:05:10 +00:00
Reid Spencer
afbc00bc38
Don't use bitcast yet!
...
llvm-svn: 31930
2006-11-26 21:22:01 +00:00
Reid Spencer
2dd1741565
Make this test case easier to read. No functional changes.
...
llvm-svn: 31929
2006-11-26 18:27:09 +00:00
Bill Wendling
3750ae25a0
Removed #include <iostream> and replace with llvm_* streams.
...
llvm-svn: 31927
2006-11-26 10:52:51 +00:00
Bill Wendling
a88968b9c4
Add method that will take a function pointer so that it can handle things
...
like "llvm_cerr << std::flush";
llvm-svn: 31926
2006-11-26 10:51:51 +00:00
Bill Wendling
4ae401074c
Remove #include <iostream> and use llvm_* streams instead.
...
llvm-svn: 31925
2006-11-26 10:17:54 +00:00
Bill Wendling
8f13b5c43e
Replace #include <iostream> with llvm_* streams.
...
llvm-svn: 31924
2006-11-26 10:02:32 +00:00
Bill Wendling
5dbf43c983
Removed #include <iostream> and replaced with llvm_* streams.
...
llvm-svn: 31923
2006-11-26 09:46:52 +00:00
Bill Wendling
a7459ca813
Removed #include <iostream> and used the llvm_cerr/DOUT streams instead.
...
llvm-svn: 31922
2006-11-26 09:17:06 +00:00
Duraid Madina
24cdf575e7
fix storing bools to mem and unordered FP ops
...
llvm-svn: 31920
2006-11-26 04:34:26 +00:00
Reid Spencer
aa5c220665
Make the absolute/relative tolerance information easier to read/understand.
...
llvm-svn: 31908
2006-11-25 08:38:44 +00:00
Reid Spencer
6968c497de
Add newline at end of file.
...
llvm-svn: 31902
2006-11-25 05:41:02 +00:00
Reid Spencer
6984a15600
Only show the first few lines of difference.
...
llvm-svn: 31901
2006-11-25 04:07:06 +00:00
Reid Spencer
17782030cf
Add an option to enable lli (interpreter mode) testing.
...
llvm-svn: 31899
2006-11-24 20:34:16 +00:00
Reid Spencer
3c3324c7fa
Fix some typos.
...
llvm-svn: 31897
2006-11-23 16:45:52 +00:00
Reid Spencer
0e43e15fc9
Promote GEP ubyte indices to uint. Backwards compatibility for 1.2 and
...
older features will be dropped soon and these test cases must not rely
on the upgrade capability.
llvm-svn: 31896
2006-11-23 15:14:52 +00:00
Nick Lewycky
09b7e4d3ab
Update to new predicate simplifier VRP design. Fixes PR966 and PR967.
...
Remove predicate simplifier from default gcc3 pipeline. New design is too
slow to enable by default.
Add new testcases for problems encountered in development.
llvm-svn: 31895
2006-11-22 23:49:16 +00:00
Reid Spencer
fff57ce9cd
Stop early if there is no mis-optimization.
...
llvm-svn: 31893
2006-11-22 03:46:45 +00:00
John Criswell
4666c085f3
Documented the --disable-compression option in gccld and gccas.
...
llvm-svn: 31892
2006-11-21 22:53:12 +00:00
John Criswell
dffef2d2f5
Added the --disable-compression option which controls whether the
...
generated bytecode uses compression.
llvm-svn: 31891
2006-11-21 22:50:24 +00:00
Chris Lattner
ec45a4c88c
This xform is handled by FoldOpIntoPhi in visitCastInst in a more elegant way.
...
llvm-svn: 31889
2006-11-21 17:05:13 +00:00
Anton Korobeynikov
5b96cdebb0
Refactored *GVRequiresExtraLoad() to Subtarget method.
...
llvm-svn: 31887
2006-11-21 00:01:06 +00:00
Jim Laskey
efcaa4a8f5
Test for PR1013.
...
llvm-svn: 31886
2006-11-20 21:58:02 +00:00
Chris Lattner
e06180bab8
new testcase
...
llvm-svn: 31885
2006-11-20 21:20:57 +00:00
Chris Lattner
ec5dbccdcf
in ppc64-mode, don't allocate the 32-bit version of r13 either.
...
llvm-svn: 31884
2006-11-20 20:48:05 +00:00
Jim Laskey
d7f53cdaec
Global label not handled correctly.
...
llvm-svn: 31883
2006-11-20 20:29:06 +00:00
Chris Lattner
ac36360348
r13 is the thread pointer on darwin/ppc64, don't allocate it.
...
llvm-svn: 31882
2006-11-20 19:33:51 +00:00
Chris Lattner
1f96052d41
Fix PR1005
...
llvm-svn: 31881
2006-11-20 18:57:02 +00:00
Chris Lattner
55b8683d24
Fix PR1001, patch by Nikhil Patil!
...
llvm-svn: 31880
2006-11-20 18:54:33 +00:00
Chris Lattner
3e96211bc8
Fix codegen for x86-64 on systems (like ppc or i386) that don't have 64-bit
...
features autodetected. This fixes PR1010 and Regression/CodeGen/X86/xmm-r64.ll
on non-x86-64 hosts.
llvm-svn: 31879
2006-11-20 18:16:05 +00:00
Chris Lattner
3676a994ca
Fix PR1011 and CodeGen/Generic/2006-11-20-DAGCombineCrash.ll
...
llvm-svn: 31878
2006-11-20 18:05:46 +00:00