Bob Wilson
d79e684d1e
Fix a minor bug in DAGCombiner's folding of SELECT. Folding "select C, 0, 1"
...
to "C ^ 1" is only valid when C is known to be either 0 or 1. Most of the
similar foldings in this function only handle "i1" types, but this one appears
intentionally written to handle larger integer types. If C has an integer
type larger than "i1", this needs to check if the high bits of a boolean
are known to be zero. I also changed the comment to describe this folding as
"C ^ 1" instead of "~C", since that is what the code does and since the latter
would only be valid for "i1" types. The good news is that most LLVM targets
use TargetLowering::ZeroOrOneBooleanContent so this change will not disable
the optimization; the bad news is that I've been unable to come up with a
testcase to demonstrate the problem.
I have also removed a "FIXME" comment for folding "select C, X, 0" to "C & X",
since the code looks correct to me. It could be made more aggressive by not
limiting the type to "i1", but that would then require checking for
TargetLowering::ZeroOrNegativeOneBooleanContent. Similar changes could be
done for the other SELECT foldings, but it was decided to be not worth the
trouble and complexity (see e.g., r44663).
llvm-svn: 62790
2009-01-22 22:05:48 +00:00
Dan Gohman
a6e5948fce
Don't create ISD::FNEG nodes after legalize if they aren't legal.
...
Simplify x+0 to x in unsafe-fp-math mode. This avoids a bunch of
redundant work in many cases, because in unsafe-fp-math mode,
ISD::FADD with a constant is considered free to negate, so the
DAGCombiner often negates x+0 to -0-x thinking it's free, when
in reality the end result is -x, which is more expensive than x.
Also, combine x*0 to 0.
This fixes PR3374.
llvm-svn: 62789
2009-01-22 21:58:43 +00:00
Gabor Greif
d56b0a8c03
introduce a useful abstraction to find out if a Use is in the call position of an instruction
...
llvm-svn: 62788
2009-01-22 21:35:57 +00:00
Tanya Lattner
11d2325f0a
Regenerated configure after backing out 62553 and r62616.
...
llvm-svn: 62778
2009-01-22 20:11:17 +00:00
Tanya Lattner
33f3303401
Revert r62553 and r62616 due to issues with portability.
...
llvm-svn: 62777
2009-01-22 20:09:20 +00:00
Chris Lattner
da545d3918
rename methods in System/Host to be more consistent.
...
llvm-svn: 62776
2009-01-22 19:53:00 +00:00
Devang Patel
386023e3f0
Do not use buggy llvm-gcc to generate testcases.
...
llvm-svn: 62770
2009-01-22 18:28:11 +00:00
Bob Wilson
186046e657
Add SelectionDAG::getNOT method to construct bitwise NOT operations,
...
corresponding to the "not" and "vnot" PatFrags. Use the new method
in some places where it seems appropriate.
llvm-svn: 62768
2009-01-22 17:39:32 +00:00
Duncan Sands
f549eb9f12
Remove no-longer relevant comment. Pointed out
...
by Gabor.
llvm-svn: 62765
2009-01-22 15:37:29 +00:00
Duncan Sands
af90c712dd
This passes on linux.
...
llvm-svn: 62764
2009-01-22 15:07:15 +00:00
Sanjiv Gupta
7173c05b38
Few targets like the tiny little PIC16 have only 16-bit pointers.
...
llvm-svn: 62763
2009-01-22 10:14:21 +00:00
Evan Cheng
c971801ae1
Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
...
llvm-svn: 62762
2009-01-22 09:10:11 +00:00
Chris Lattner
92f592ad8b
fix a typo
...
llvm-svn: 62761
2009-01-22 07:21:55 +00:00
Chris Lattner
fcf56e7fbe
add a note
...
llvm-svn: 62760
2009-01-22 07:16:03 +00:00
Chris Lattner
d3b233ba51
fix a testcase.
...
llvm-svn: 62758
2009-01-22 07:08:58 +00:00
Chris Lattner
ddc8e78d54
Fix PR3358, a really nasty bug where recursive phi translated
...
analyses could be run without the caches properly sorted. This
can fix all sorts of weirdness. Many thanks to Bill for coming
up with the 'issorted' verification idea.
llvm-svn: 62757
2009-01-22 07:04:01 +00:00
Tanya Lattner
98382d83c1
Bump to 2.6svn.
...
Regenerate configure (last regen was with the wrong version).
llvm-svn: 62751
2009-01-22 05:17:59 +00:00
Chris Lattner
fb1a7b3501
Make tblgen more portable, allowing it to build with ICC.
...
Patch by Robert Zeh!
llvm-svn: 62750
2009-01-22 05:10:16 +00:00
Mike Stump
475c530c8a
Don't create .dir files in installation directories. Switch to using
...
order-only dependancies for installation directories.
llvm-svn: 62746
2009-01-22 03:24:22 +00:00
Bill Wendling
ffdc0db38b
The operator<() and operator>() were reversing their tests. Have the test the correct way.
...
llvm-svn: 62745
2009-01-22 03:05:10 +00:00
Bill Wendling
b7de7afd32
Get rid of warning about implicit 64-to-32 bit conversions.
...
llvm-svn: 62741
2009-01-22 02:10:33 +00:00
Dan Gohman
3f9d24dca8
Add a few more notes about LLVM IR features that codegen doesn't
...
yet support.
llvm-svn: 62739
2009-01-22 01:39:38 +00:00
Oscar Fuentes
48a1886727
CMake: Tests PERL availability with PERL_EXECUTABLE variable.
...
On MSVC 64bits, does not put underscore before the symbol name on the
/INCLUDE linker parameter.
llvm-svn: 62738
2009-01-22 01:20:31 +00:00
Steve Naroff
375325e8c1
Add explicit this-> (to make the VS compiler happy).
...
llvm-svn: 62731
2009-01-21 23:49:23 +00:00
Dan Gohman
29b575c6cd
Recognize inline asm for bswap on x86-64 GLIBC. This allows it
...
to be supported in the JIT.
llvm-svn: 62730
2009-01-21 23:40:54 +00:00
Douglas Gregor
0a0af6b767
Fix ilist two-phase name lookup
...
llvm-svn: 62724
2009-01-21 22:38:44 +00:00
Dan Gohman
3d8c8dfe0e
Fix a missing word.
...
llvm-svn: 62720
2009-01-21 21:54:44 +00:00
Dan Gohman
6c518dd2c6
Versions of VIM included with Intrepid and Leopard at least appear
...
to handle symlinks just fine, so reword the instructions in the
README accordingly.
llvm-svn: 62719
2009-01-21 21:52:42 +00:00
Dan Gohman
ef099b9d6c
Enable syntax highlighting of LLVM and tablegen files by default,
...
so that users don't have to copy text from the README to get this.
llvm-svn: 62718
2009-01-21 21:47:51 +00:00
Dan Gohman
e9724624b7
Only set cindent for C and C++ source files.
...
llvm-svn: 62717
2009-01-21 21:30:25 +00:00
Bill Wendling
58a51ca0f9
Now with RUN line.
...
llvm-svn: 62716
2009-01-21 21:28:03 +00:00
Bill Wendling
1eb2ec148b
Run this through -simplifycfg and -mem2reg to test only what we need to test.
...
llvm-svn: 62714
2009-01-21 21:02:27 +00:00
Dan Gohman
d469bd5137
Add a comment to SelectionDAG::ReplaceAllUsesWith to describe a subtle
...
iteraction with SelectionDAG CSE.
llvm-svn: 62713
2009-01-21 20:50:09 +00:00
Dale Johannesen
a5699a1e8b
Do not use host floating point types when emitting
...
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts. Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.
llvm-svn: 62712
2009-01-21 20:32:55 +00:00
Evan Cheng
43d680b0d8
Also favors NOT64r.
...
llvm-svn: 62710
2009-01-21 19:45:31 +00:00
Chris Lattner
2b6b947b4f
fix warning in release-asserts mode and spelling of assert.
...
llvm-svn: 62699
2009-01-21 18:38:18 +00:00
Chris Lattner
b4ffb1f824
add getPointerToGlobal to the C bindings, patch by Lennart Augustsson!
...
PR3364
llvm-svn: 62697
2009-01-21 18:11:10 +00:00
Chris Lattner
ca83aa289a
Remove uses of uint32_t in favor of 'unsigned' for better
...
compatibility with cygwin. Patch by Jay Foad!
llvm-svn: 62695
2009-01-21 18:09:24 +00:00
Dan Gohman
d021a20409
Simplify ReduceLoadWidth's logic: it doesn't need several different
...
special cases after producing the new reduced-width load, because the
new load already has the needed adjustments built into it. This fixes
several bugs due to the special cases, including PR3317.
llvm-svn: 62692
2009-01-21 15:17:51 +00:00
Dan Gohman
704f0d5879
Fix a recent regression. ClrOpcode is not set for i8; for i8, if
...
we want to clear %ah to zero before a division, just use a
zero-extending mov to %al. This fixes PR3366.
llvm-svn: 62691
2009-01-21 14:50:16 +00:00
Mikhail Glushenkov
898af4fdfa
Mimic gcc behaviour with regard to response files.
...
llvm-svn: 62688
2009-01-21 13:14:02 +00:00
Mikhail Glushenkov
ff00dc77f2
Fix 'llvm-config --libs' output.
...
Change the naming scheme for llvmc plugins so that they do not appear in
'llvm-config --libs' output.
llvm-svn: 62687
2009-01-21 13:05:00 +00:00
Mikhail Glushenkov
bf9e875d8e
Change the hook API back to prevent memory leaks.
...
llvm-svn: 62686
2009-01-21 13:04:33 +00:00
Mikhail Glushenkov
9153777db7
Allow hooks with arguments.
...
llvm-svn: 62685
2009-01-21 13:04:00 +00:00
Duncan Sands
8ff90a156b
This was causing invalid memory accesses when
...
generating debug info in the compiler.
llvm-svn: 62684
2009-01-21 11:51:17 +00:00
Duncan Sands
07b1beeba8
Let's try to have our cake and eat it to: move
...
this test into FrontendC to ensure that llvm-gcc
is available; assemble using "llvm-gcc -xassembler"
rather than "as".
llvm-svn: 62683
2009-01-21 11:37:31 +00:00
Duncan Sands
e60dd41a39
Don't rely on grep -w working.
...
llvm-svn: 62682
2009-01-21 09:41:42 +00:00
Sanjiv Gupta
ebef67f13c
Fixed build warnings. Restoring changes done in 62600, they were lost in 62655.
...
llvm-svn: 62681
2009-01-21 09:02:46 +00:00
Duncan Sands
392dc77fc6
Cleanup whitespace and comments, and tweak some
...
prototypes, in operand type legalization. No
functionality change.
llvm-svn: 62680
2009-01-21 09:00:29 +00:00
Owen Anderson
d1a2413f88
I accidentally removed this check in an earlier commit, which cause breakage in the pre alloc splitter.
...
llvm-svn: 62678
2009-01-21 08:18:03 +00:00