Nick Lewycky
75dfadbaf9
Switch to DenseSet, simplifying much more code. We now have a single iteration
...
where we hash, compare and fold, instead of one iteration where we build up
the hash buckets and a second one to fold.
llvm-svn: 112582
2010-08-31 05:53:05 +00:00
Owen Anderson
bd9edea8a3
Remove r111665, which implemented store-narrowing in InstCombine. Chris discovered a miscompilation in it, and it's not easily
...
fixable at the optimizer level. I'll investigate reimplementing it in DAGCombine.
llvm-svn: 112575
2010-08-31 04:41:06 +00:00
Bruno Cardoso Lopes
ebe80d78ff
zap unused method. x86 is the only user and already has a more powerfull version
...
llvm-svn: 112571
2010-08-31 02:36:20 +00:00
Bruno Cardoso Lopes
08d5d62dcb
Use X86ISD::MOVSS and MOVSD to represent the movl mask pattern, also fix the handling of those nodes when seeking for scalars inside vector shuffles
...
llvm-svn: 112570
2010-08-31 02:26:40 +00:00
Eric Christopher
b2756a8b99
Rewrite slightly so we can expand for floating point types easier.
...
llvm-svn: 112568
2010-08-31 01:28:42 +00:00
Jakob Stoklund Olesen
6fa8a6ac6b
Add experimental -disable-physical-join command line option.
...
Eventually, we want to disable physreg coalescing completely, and let the
register allocator do its job using hints.
This option makes it possible to measure the impact of disabling physreg
coalescing.
llvm-svn: 112567
2010-08-31 01:27:49 +00:00
Owen Anderson
f1cec75012
Fix a typo.
...
llvm-svn: 112560
2010-08-30 23:59:30 +00:00
Eric Christopher
21b355b522
If we have an unhandled type then assert, we shouldn't get here for
...
things we can't handle.
llvm-svn: 112559
2010-08-30 23:48:26 +00:00
Dan Gohman
d261381db5
Update the descriptions of NoModRef and ModRef to be consistent
...
with the descriptions of Mod and Ref.
llvm-svn: 112557
2010-08-30 23:47:24 +00:00
Anton Korobeynikov
c3f039784a
Fix borken test
...
llvm-svn: 112555
2010-08-30 23:41:49 +00:00
Owen Anderson
18110f0db4
Combine these two tests, and make sure there's a newline at the end of the file.
...
llvm-svn: 112554
2010-08-30 23:37:41 +00:00
Owen Anderson
c90a98e0a5
Cleanups suggested by Chris.
...
llvm-svn: 112553
2010-08-30 23:34:17 +00:00
Owen Anderson
af33f22b40
Re-apply r112539, being more careful to respect the return values of the constant folding methods. Additionally,
...
use the ConstantExpr::get*() methods to simplify some constant folding.
llvm-svn: 112550
2010-08-30 23:22:36 +00:00
Anton Korobeynikov
851437063a
Expand MOVi32imm in ARM mode after regalloc. This provides
...
scheduling opportunities (extra instruction can go in between
MOVT / MOVW pair removing the stall).
llvm-svn: 112546
2010-08-30 22:50:36 +00:00
Owen Anderson
8e72b2f3f5
Add statistics to evaluate this pass.
...
llvm-svn: 112545
2010-08-30 22:45:55 +00:00
Owen Anderson
9d301e20e8
Revert r112539. It accidentally introduced a miscompilation.
...
llvm-svn: 112543
2010-08-30 22:33:41 +00:00
Owen Anderson
479c0c406f
Fixes and cleanups pointed out by Chris. In general, be careful to handle 0 results from ComputeValueKnownInPredecessors
...
(indicating undef), and re-use existing constant folding APIs.
llvm-svn: 112539
2010-08-30 22:07:52 +00:00
Bill Wendling
7532e3418e
Use the existing T2I_bin_s_irs pattern instead of creating T2I_bin_sw_irs, which
...
is meant to do exactly the same thing. Thanks to Jim Grosbach for pointing this
out! :-)
llvm-svn: 112538
2010-08-30 22:05:23 +00:00
NAKAMURA Takumi
2c7cfc7bd4
Fix a comment.
...
llvm-svn: 112535
2010-08-30 21:54:03 +00:00
Jakob Stoklund Olesen
ce3cfe3e8b
Remember to clear the shadow kill flag at the same time as clearing the real
...
kill flag.
This could cause duplicate kill flags when the same register was used twice in a
continuous sequence of STRs.
There is no small test case. <rdar://problem/8218046>
llvm-svn: 112534
2010-08-30 21:52:40 +00:00
Dan Gohman
36b6dc3bc1
Fix llc to run the verifier once, not twice.
...
llvm-svn: 112532
2010-08-30 21:41:20 +00:00
Owen Anderson
24665a1e03
Remove this from the main tree. I'll host it out of tree.
...
llvm-svn: 112529
2010-08-30 21:34:26 +00:00
Dan Gohman
6909a51674
Add comments explaining why it's not necessary to include the
...
is-function-local flag in metadata uniquing bits.
llvm-svn: 112528
2010-08-30 21:18:41 +00:00
Bob Wilson
826a677f94
Remove NEON vmovn intrinsic, replacing it with vector truncate operations.
...
Auto-upgrade the old intrinsic and update tests.
llvm-svn: 112507
2010-08-30 20:02:30 +00:00
Jim Grosbach
674b25ce31
Make ARM add rN, sp, #imm instructions rematerializable. That's how the address of locals is calculated, so this should
...
help relieve register pressure a bit. Recalculating the local address is
almost always going to be better than spilling.
llvm-svn: 112503
2010-08-30 19:49:58 +00:00
Eric Christopher
da5541e56d
Fix LLVM target initialization to deal with sociopathic outside projects
...
that like to randomly define things like "X86", regenerate autoconf bits
and update cmake.
Fixes PR7852.
Patch by Xerxes Rånby!
llvm-svn: 112499
2010-08-30 18:34:48 +00:00
Eric Christopher
5f8ae3dbd6
Kill a couple of unused variables.
...
llvm-svn: 112498
2010-08-30 18:31:44 +00:00
Chris Lattner
e667efb462
nuke dead ivar which was supposed to be committed with r112496
...
llvm-svn: 112497
2010-08-30 18:16:27 +00:00
Chris Lattner
765e59210c
two changes:
...
1) nuke ConstDataCoalSection, which is dead.
2) revise my previous patch for rdar://8018335,
which was completely wrong. Specifically, it doesn't
make sense to mark __TEXT,__const_coal as PURE_INSTRUCTIONS,
because it is for readonly data. templates (it turns out)
go to const_coal_nt. The real fix for rdar://8018335 was
to give ConstTextCoalSection a section kind of ReadOnly
instead of Text.
llvm-svn: 112496
2010-08-30 18:12:35 +00:00
Bob Wilson
2b83684be8
When expanding NEON VST pseudo instructions, if the original super-register
...
operand is killed, add it to the expanded instruction as an implicit kill
operand instead of marking the individual subregs with kill flags. This
should work better in general and also handles the case for VST3 where one
of the subregs was not referenced in the expanded instruction and so was
not marked killed.
llvm-svn: 112494
2010-08-30 18:10:48 +00:00
Benjamin Kramer
6c5076f317
MCELF: The value of all common symbols is the offset from the start of the section. Patch by Roman Divacky.
...
llvm-svn: 112492
2010-08-30 17:20:17 +00:00
Owen Anderson
d29fb4b991
It is possible to try to merge a not-constant with a constantrage, when dealing with ptrtoint ConstantExpr's.
...
Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is
sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order.
llvm-svn: 112489
2010-08-30 17:03:45 +00:00
Michael J. Spencer
51a65365f3
Partially revert r112480. Caused test failures.
...
llvm-svn: 112486
2010-08-30 15:34:08 +00:00
NAKAMURA Takumi
89dab50acd
coff-dump.py: Fix PR7996. Now it is compatible to Python-2.4.
...
llvm-svn: 112485
2010-08-30 15:19:56 +00:00
Michael J. Spencer
2f463fc492
Fix constant-over-index.ll test on windows.
...
llvm-svn: 112483
2010-08-30 15:08:02 +00:00
Michael J. Spencer
cd662e3540
Test: Fix LLVMC tests on CMake.
...
The CMake build didn't define TEST_COMPILE_CXX_CMD. The tests assumed gcc.
llvm-svn: 112480
2010-08-30 14:49:00 +00:00
Benjamin Kramer
b63bf8cf9b
Don't print two "0x" prefixes. Use a raw_ostream overload instead of llvm::format.
...
llvm-svn: 112479
2010-08-30 14:46:53 +00:00
NAKAMURA Takumi
b5613b9f12
EE/JIT: Do not invoke parent's ctors/dtors from main()! (PR3897)
...
On Mingw and Cygwin, the symbol __main is resolved to
callee's(eg. tools/lli) one, to invoke wrong duplicated ctors
(and register wrong callee's dtors with atexit(3)).
We expect, by callee, ExecutionEngine::runStaticConstructorsDestructors()
is called before ExecutionEngine::runFunctionAsMain() is called.
llvm-svn: 112474
2010-08-30 14:00:29 +00:00
Benjamin Kramer
b540b09a7c
The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev.
...
llvm-svn: 112473
2010-08-30 12:00:16 +00:00
Benjamin Kramer
ca65cc9222
Index external symbols by symbol table instead of parent section, by Roman Divacky.
...
llvm-svn: 112472
2010-08-30 11:59:29 +00:00
Benjamin Kramer
3aabb3eb53
Mark all common symbols external. This is not exactly correct but it lets apps
...
link for now and can be adjusted later. Patch by Roman Divacky.
llvm-svn: 112471
2010-08-30 11:56:55 +00:00
Duncan Sands
3e49fe09db
Remove a hack that tries to understand incorrect triples from the
...
Triple class constructor. Only valid triples should now be used
inside LLVM - front-ends are now responsable for rejecting or
correcting invalid target triples. The Triple::normalize method
can be used to straighten out funky triples provided by users.
Give this a whirl through the buildbots to see if I caught all
places where triples enter LLVM.
llvm-svn: 112470
2010-08-30 10:57:54 +00:00
Duncan Sands
254f8ff0a6
Correct bogus module triple specifications.
...
llvm-svn: 112469
2010-08-30 10:48:29 +00:00
Owen Anderson
fd4ce93e17
Add a new example to the LLVM distribution: a trace-based Brainfuck compiler that uses LLVM as its code generator.
...
llvm-svn: 112465
2010-08-30 07:33:39 +00:00
Chandler Carruth
eddd738031
Attempt to remove the MSIL backend from CMake as well based on Chris's r112375.
...
llvm-svn: 112464
2010-08-30 07:25:54 +00:00
Bill Wendling
999c8b219d
Revert r112461. It was failing on PPC...
...
llvm-svn: 112463
2010-08-30 04:36:50 +00:00
Bill Wendling
c325a15569
Create Thumb2sI_cpsr and T2sI_cpsr. These new classes indicate that CPSR is the
...
optional modified register (instead of reg0). Along with r112461 it will make
sure that the optional define of CPSR is marked as "def" and will thus mark the
instructions using these classes (t2ANDS*) as setting the 's' flag.
llvm-svn: 112462
2010-08-30 01:47:35 +00:00
Bill Wendling
450e009b5e
When adding a register, we should mark it as "def" if it can optionally define
...
said (physical) register.
llvm-svn: 112461
2010-08-30 01:36:05 +00:00
Chris Lattner
8331070df0
revert 112457, it looks like it broke selfhost.
...
llvm-svn: 112459
2010-08-29 22:28:18 +00:00
Chris Lattner
92879a5ba1
rewrite DwarfEHPrepare to use SSAUpdater to promote its allocas
...
instead of PromoteMemToReg. This allows it to stop using DF and DT,
eliminating a computation of DT and DF from clang -O3. Clang is now
down to 2 runs of DomFrontier.
llvm-svn: 112457
2010-08-29 19:54:28 +00:00