Bob Wilson
b75225556d
Fix BuildVectorSDNode::isConstantSplat to handle one-element vectors.
...
It is an error to call APInt::zext with a size that is equal to the value's
current size, so use zextOrTrunc instead.
llvm-svn: 66039
2009-03-04 17:47:01 +00:00
Mike Stump
979a5ea539
.emacs file bits for automatically setting the llvm.org coding style. Thanks Anton.
...
llvm-svn: 66032
2009-03-04 14:14:37 +00:00
Owen Anderson
fb7f64ea0d
Add a restore folder, which shaves a dozen or so machineinstrs off oggenc. Update a testcase to check this.
...
llvm-svn: 66029
2009-03-04 08:52:31 +00:00
Gabor Greif
f8d2f7429d
"Ghostify" embedded sentinels. This is a real win in all cases
...
because less bytes are allocated and subobject construction is gone.
For reference how it works, see BasicBlock.h.
Btw. it is very assuring to see that somebody has invented
this ilist-embedded sentinel technique before me :-)
llvm-svn: 66026
2009-03-04 06:57:48 +00:00
Evan Cheng
7d9019d0f3
Fix PR3666: isel calls to constant addresses.
...
llvm-svn: 66024
2009-03-04 06:48:53 +00:00
Eli Friedman
1bed40b86a
PR3686: make the legalizer handle bitcast from i80 to x86 long double.
...
llvm-svn: 66021
2009-03-04 06:23:34 +00:00
Dan Gohman
6831e2c2a6
Revert r66004 for now; it's causing a variety of test failures.
...
llvm-svn: 66008
2009-03-04 03:54:19 +00:00
Evan Cheng
32eef2f73f
Rename test.
...
llvm-svn: 66006
2009-03-04 02:47:25 +00:00
Dan Gohman
c6c669cc1e
Teach the x86 backend to eliminate "test" instructions by using the EFLAGS
...
result from add, sub, inc, and dec instructions in simple cases.
llvm-svn: 66004
2009-03-04 02:33:24 +00:00
Dale Johannesen
8ca4d24371
Revert unintended commmit.
...
llvm-svn: 66001
2009-03-04 02:09:48 +00:00
Dale Johannesen
c6bfdb8253
Skip ptr-to-ptr bitcasts when counting in another case.
...
llvm-svn: 66000
2009-03-04 02:06:53 +00:00
Dale Johannesen
e184480072
Always skip ptr-to-ptr bitcasts when counting,
...
per Chris' suggestion. Slightly faster.
llvm-svn: 65999
2009-03-04 01:53:05 +00:00
Evan Cheng
db402a7a49
Fix PR3701. 1. X86 target renamed eflags register to flags. This matches what llvm-gcc generates so codegen knows flags register is being clobbered by inline asm. 2. BURR scheduler should also check if inline asm nodes can clobber "live" physical registers. Previously it was only checking target nodes with implicit defs.
...
llvm-svn: 65996
2009-03-04 01:41:49 +00:00
Devang Patel
94ef615585
If a global constant is dead then global's debug info should not prevent the optimizer in deleting the global. And while deleting global, delete global's debug info also.
...
llvm-svn: 65994
2009-03-04 01:22:23 +00:00
Dale Johannesen
a6f7a45366
Make my earlier patch to skip debug intrinsics
...
when counting work; it was only off by 1.
llvm-svn: 65993
2009-03-04 01:20:34 +00:00
Dale Johannesen
b26bc461f0
Temporarily revert 65975, which breaks the llvm-gcc build.
...
While the patch is clearly correct in itself, it's become
apparent other places are assuming debug intrinsics are
marked as touching memory...this needs more testing.
llvm-svn: 65992
2009-03-04 01:14:28 +00:00
Bill Wendling
93eeea0493
The DAG combiner was performing a BT combine. The BT combine had a value of -1,
...
so it changed it into a 31 via the TLO.ShrinkDemandedConstant() call. Then it
would go through the DAG combiner again. This time it had a value of 31, which
was turned into a -1 by TLI.SimplifyDemandedBits(). This would ping pong
forever.
Teach the TLO.ShrinkDemandedConstant() call not to lower a value if the demanded
value is an XOR of all ones.
llvm-svn: 65985
2009-03-04 00:18:06 +00:00
Dale Johannesen
e611f70764
Marking debug info intrinsics as not touching memory
...
caused them to be considered trivially dead. Fix this.
llvm-svn: 65979
2009-03-03 23:30:00 +00:00
Dale Johannesen
81b6cd8ce5
Instruction counters must skip the bitcasts that
...
feed into llvm.dbg.declare nodes, as well as
the debug directives themselves.
llvm-svn: 65976
2009-03-03 22:36:47 +00:00
Devang Patel
dd0b382f55
Dbg Intrinsics do not access memory.
...
llvm-svn: 65975
2009-03-03 22:33:54 +00:00
Devang Patel
9b7c78086b
Recursively remove dead argument while removing llvm.dbg.declare intrinsic.
...
llvm-svn: 65971
2009-03-03 21:31:02 +00:00
Dale Johannesen
ceed180d4c
When removing a store to an alloca that has only one
...
use, check also for the case where it has two uses,
the other being a llvm.dbg.declare. This is needed so
debug info doesn't affect codegen.
llvm-svn: 65970
2009-03-03 21:26:39 +00:00
Chris Lattner
db4a8af064
don't #include a header into the middle of an anon namespace.
...
llvm-svn: 65967
2009-03-03 20:10:23 +00:00
Dan Gohman
3c6c7754b2
Add '(implicit EFLAGS)' for AND, OR, XOR, NEG, INC, and DEC
...
instructions. These aren't used yet.
llvm-svn: 65965
2009-03-03 19:53:46 +00:00
Bob Wilson
17cf012d93
Use early exit to reduce indentation. No functional change.
...
llvm-svn: 65962
2009-03-03 19:26:27 +00:00
Bill Wendling
7fdda71ad7
Remove accidental check-ins in r65960. :-(
...
llvm-svn: 65961
2009-03-03 19:25:16 +00:00
Bill Wendling
8244b700bf
Use > instead of >=. We want to promote aggregates of 128-bytes.
...
llvm-svn: 65960
2009-03-03 19:18:49 +00:00
Dan Gohman
cf43db79cc
Make a comment less terse.
...
llvm-svn: 65953
2009-03-03 17:44:54 +00:00
Bill Wendling
a77bedb70b
Reapply r65755, but reversing "<" to ">=".
...
llvm-svn: 65945
2009-03-03 12:12:58 +00:00
Mikhail Glushenkov
06f114ba92
Add example/Skeleton.
...
This is a template that can be used to build your own LLVMC-based drivers.
It can be also useful as a "bare-bones" LLVMC.
llvm-svn: 65944
2009-03-03 11:02:48 +00:00
Mikhail Glushenkov
1777b8c113
Comment fixes.
...
llvm-svn: 65943
2009-03-03 10:04:57 +00:00
Mikhail Glushenkov
a4a724f737
Oops.
...
llvm-svn: 65942
2009-03-03 10:04:23 +00:00
Mikhail Glushenkov
86e63a12c5
Use LLVMLIBS instead of USEDLIBS.
...
Since this Makefile is supposed to be usable from LLVM-based projects not in the
tree, LLVMLIBS should be used instead of USEDLIBS. This depends on my previous
fix to Makefile.rules.
llvm-svn: 65941
2009-03-03 10:03:53 +00:00
Mikhail Glushenkov
d6a332110e
LINK_COMPONENTS should be added to LLVMLibsOptions.
...
From the code: "There are "Proj" libs (defined by the user's project) and "LLVM"
libs (defined by the LLVM project)." LINK_COMPONENTS are clearly defined by the
LLVM project.
Additionally, this fixes an issue with llvmc's build process:-)
llvm-svn: 65940
2009-03-03 10:03:27 +00:00
Mikhail Glushenkov
96788a19b6
Move example plugins to the example/ directory.
...
llvm-svn: 65939
2009-03-03 10:02:53 +00:00
Nick Lewycky
b7302132ac
ENABLE_PIC is either 0 or 1, but is always defined.
...
llvm-svn: 65938
2009-03-03 07:45:09 +00:00
Mikhail Glushenkov
1d23d4e16b
80-column violation + trailing whitespace.
...
llvm-svn: 65936
2009-03-03 07:22:23 +00:00
Zhou Sheng
1e7e86fec4
Ignore the debug info intrinsics when adding instructions into alias sets.
...
llvm-svn: 65934
2009-03-03 06:02:04 +00:00
Nick Lewycky
b1866d3036
This bug's been fixed but a version with the fix hasn't been released yet.
...
llvm-svn: 65931
2009-03-03 05:41:16 +00:00
Nick Lewycky
9d66b5883e
Regenerate.
...
llvm-svn: 65928
2009-03-03 04:55:29 +00:00
Nick Lewycky
28f2571059
Switch to using -Wl,-R on Solaris.
...
llvm-svn: 65927
2009-03-03 04:55:15 +00:00
Nick Lewycky
16799e4e7c
Fix build on Cygwin.
...
llvm-svn: 65922
2009-03-03 03:36:50 +00:00
Dan Gohman
51d4e8db6a
Fix a bunch of Doxygen syntax issues. Escape special characters,
...
and put @file directives on their own comment line.
llvm-svn: 65920
2009-03-03 02:55:14 +00:00
Dale Johannesen
d4a205b300
Don't count DebugInfo instructions in another limit
...
(lest they affect codegen).
llvm-svn: 65915
2009-03-03 01:43:03 +00:00
Dale Johannesen
04fe3500c1
Testcase for line number sinking in InstCombine.
...
llvm-svn: 65911
2009-03-03 01:10:01 +00:00
Dale Johannesen
33fa9dc8a9
When sinking an insn in InstCombine bring its debug
...
info with it.
Don't count debug info insns against the scan maximum
in FindAvailableLoadedValue (lest they affect codegen).
llvm-svn: 65910
2009-03-03 01:09:07 +00:00
Devang Patel
b69b449ce8
Ignore debug info intrinsics.
...
llvm-svn: 65908
2009-03-03 00:28:44 +00:00
Devang Patel
e98e6bc27c
If branch conditions' one successor is dominating another non-latch successor then this loop's iteration space can not be restricted. In this example block bb5 is always executed.
...
llvm-svn: 65902
2009-03-02 23:39:14 +00:00
Bob Wilson
5b276b6bc9
Generalize BuildVectorSDNode::isConstantSplat to use APInts and handle
...
arbitrary vector sizes. Add an optional MinSplatBits parameter to specify
a minimum for the splat element size. Update the PPC target to use the
revised interface.
llvm-svn: 65899
2009-03-02 23:24:16 +00:00
Bill Wendling
1063de1ee0
Document the -gcc-tool-args bugpoint option.
...
llvm-svn: 65897
2009-03-02 23:15:59 +00:00