Jakob Stoklund Olesen
b935aa1678
Remove the PR8954 workaround.
...
llvm-svn: 123288
2011-01-11 22:56:41 +00:00
Jakob Stoklund Olesen
37fe53c1a9
Fix a non-deterministic loop in llvm::MergeBlockIntoPredecessor.
...
DT->changeImmediateDominator() trivially ignores identity updates, so there is
really no need for the uniqueing provided by SmallPtrSet.
I expect this to fix PR8954.
llvm-svn: 123286
2011-01-11 22:54:38 +00:00
Jakob Stoklund Olesen
d7a523358c
Enable LiveDebugVariables by default.
...
llvm-svn: 123282
2011-01-11 22:45:28 +00:00
Venkatraman Govindaraju
f681d4e782
SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC
...
llvm-svn: 123281
2011-01-11 22:38:28 +00:00
Cameron Zwarich
b0e688cc7c
Dial back the speculative fix for PR8954 a bit, so that we only recompute dominators
...
once at the beginning of GVN instead of once per iteration.
llvm-svn: 123278
2011-01-11 22:14:42 +00:00
Jakob Stoklund Olesen
1cd577b435
Don't insert DBG_VALUE instructions after the first terminator.
...
For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is
happening, and it also makes sense to have all control flow run through the
DBG_VALUE.
llvm-svn: 123277
2011-01-11 22:11:16 +00:00
Evan Cheng
05ef00f4dc
Clean up ARM subtarget code by using Triple ADT.
...
llvm-svn: 123276
2011-01-11 21:46:47 +00:00
Devang Patel
7b5cf4eafc
Appropriately truncate debug info range in dwarf output.
...
This is not yet completely enabled.
llvm-svn: 123274
2011-01-11 21:42:10 +00:00
Jakob Stoklund Olesen
add3ef6ca2
Put the Dominator improvements back in. They were not the cause of bootstrap miscomparisons.
...
llvm-svn: 123273
2011-01-11 21:23:09 +00:00
Cameron Zwarich
e8c1c44e01
Attempt to fix the bootstrap buildbot. Rafael says this works for him on x86-64 Linux.
...
llvm-svn: 123270
2011-01-11 20:23:34 +00:00
Jakob Stoklund Olesen
264d2e5c08
Speculatively revert the recent improvements to Dominators.h in an attempt to track down the gcc bootstrap miscompare.
...
llvm-svn: 123254
2011-01-11 19:26:30 +00:00
Daniel Dunbar
c9c0581897
McARM: Fill in GetMnemonicAcceptInfo().
...
llvm-svn: 123253
2011-01-11 19:06:29 +00:00
Daniel Dunbar
f14e43062c
McARM: Write a silly Python script to compute some hard coded info from the
...
generated ARM match table, which is substantially more efficient than dealing
with tblgen.
llvm-svn: 123252
2011-01-11 19:06:26 +00:00
Owen Anderson
a82627567b
Remove dead variable, const-ref-ize an APInt.
...
llvm-svn: 123248
2011-01-11 18:26:37 +00:00
Chris Lattner
1674862564
this pass claims to preserve scev, make sure to tell it about deletions.
...
llvm-svn: 123247
2011-01-11 18:14:50 +00:00
Bob Wilson
63547ae69e
Fix a comment: We now have intrinsics for vcvtr.
...
llvm-svn: 123246
2011-01-11 17:56:41 +00:00
Chris Lattner
8c0a70a30c
some comment improvements.
...
llvm-svn: 123243
2011-01-11 17:11:59 +00:00
Chris Lattner
586e7af07d
Fix PR8946, a missing reg/reg form of movdqu.
...
llvm-svn: 123242
2011-01-11 17:04:55 +00:00
Daniel Dunbar
0cc3d4d8bc
McARM: Sketch some logic for determining when to add carry set and predication code operands based on the "canonical mnemonic".
...
llvm-svn: 123239
2011-01-11 15:59:53 +00:00
Daniel Dunbar
fbc0b96c34
McARM: Add more hard coded logic to SplitMnemonicAndCC to also split out the
...
carry setting flag from the mnemonic.
Note that this currently involves me disabling a number of working cases in
arm_instructions.s, this is a hopefully short term evil which will be rapidly
fixed (and greatly surpassed), assuming my current approach flies.
llvm-svn: 123238
2011-01-11 15:59:50 +00:00
Jay Foad
993406aaba
FixedNumOperandTraits and VariadicOperandTraits assumed that, given a
...
"this" pointer for any subclass of User, you could static_cast it to
User* and then reinterpret_cast that to Use* to get the end of the
operand list. This isn't a safe assumption in general, because the
static_cast might adjust the "this" pointer. Fixed by having these
OperandTraits classes take an extra template parameter, which is the
subclass of User. This is groundwork for PR889.
llvm-svn: 123235
2011-01-11 15:07:38 +00:00
Frits van Bommel
f5bd48972a
Factor the actual simplification out of SimplifyIndirectBrOnSelect and into a new helper function so it can be reused in e.g. an upcoming SimplifySwitchOnSelect.
...
No functional change.
llvm-svn: 123234
2011-01-11 12:52:11 +00:00
Oscar Fuentes
82cc1fb69c
Add to the CMake build some options and platform tests supported by
...
the traditional build.
Patch by arrowdodger!
llvm-svn: 123233
2011-01-11 12:31:54 +00:00
Oscar Fuentes
123864334b
Made llvm_replace_compiler_option more robust. Use it on
...
llvm_process_sources.
llvm-svn: 123232
2011-01-11 12:31:34 +00:00
Kalle Raiskila
492a821e21
Fix a thinko in 123226 that caused test failures on "other" platforms.
...
llvm-svn: 123229
2011-01-11 11:27:56 +00:00
Eric Christopher
c6db56a31e
Revert the testcase from the previous reverted commit.
...
llvm-svn: 123227
2011-01-11 09:20:44 +00:00
Kalle Raiskila
457fa0b3bc
Add a "nop filler" pass to SPU.
...
Filling no-ops is done just before emitting of assembly,
when the instruction stream is final. No-ops are inserted
to align the instructions so the dual-issue of the pipeline
is utilized. This speeds up generated code with a minimum of
1% on a select set of algorithms.
This pass may be redundant if the instruction scheduler and
all subsequent passes that modify the instruction stream
(prolog+epilog inserter, register scavenger, are there others?)
are made aware of the instruction alignments.
llvm-svn: 123226
2011-01-11 09:07:54 +00:00
Eric Christopher
e86e1aecd8
Temporarily revert 123133, it's causing some regressions and I'm trying
...
to get a testcase.
llvm-svn: 123225
2011-01-11 09:02:09 +00:00
Chris Lattner
e5688368c6
update memdep when an instruction is deleted. This code isn't
...
actually reached in the testcase in PR8954, but it's safe and good
practice.
llvm-svn: 123224
2011-01-11 08:19:16 +00:00
Chris Lattner
a82a6cfe6d
when MergeBlockIntoPredecessor merges two blocks, update MemDep if it
...
is floating around in the ether.
llvm-svn: 123223
2011-01-11 08:16:49 +00:00
Chris Lattner
dc7b2160ba
Fix FoldSingleEntryPHINodes to update memdep and AA when it deletes
...
phi nodes. It is called from MergeBlockIntoPredecessor which is
called from GVN, which claims to preserve these.
I'm skeptical that this is the actual problem behind PR8954, but
this is a stab in the right direction.
llvm-svn: 123222
2011-01-11 08:13:40 +00:00
Chris Lattner
b1a9c9ed36
random cleanups
...
llvm-svn: 123221
2011-01-11 08:00:40 +00:00
Chris Lattner
feade29ab8
merge tests into one crash.ll test.
...
llvm-svn: 123220
2011-01-11 07:50:07 +00:00
Chris Lattner
5731a92f5b
remove a bogus assertion: the latch block of a loop is not
...
neccesarily an uncond branch to the header. This fixes
PR8955 (the assertion tripping).
llvm-svn: 123219
2011-01-11 07:47:59 +00:00
Chris Lattner
14bf29d7a0
the GEP faq says that only inbounds geps are guaranteed to not overflow.
...
llvm-svn: 123218
2011-01-11 06:44:41 +00:00
Jakob Stoklund Olesen
43e92a1d28
Revert r123207: "Turn on memdep's verifyRemoved() in an attempt to smoke out the cause of our gcc bootstrap miscompare."
...
It didn't.
llvm-svn: 123215
2011-01-11 04:05:39 +00:00
Michael J. Spencer
6d4a8a7b72
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
...
llvm-svn: 123209
2011-01-11 01:21:55 +00:00
Jakob Stoklund Olesen
d8abef4798
Turn on memdep's verifyRemoved() in an attempt to smoke out the cause of our gcc bootstrap miscompare.
...
llvm-svn: 123207
2011-01-11 01:18:03 +00:00
Chandler Carruth
250dce460c
Teach constant folding to perform conversions from constant floating
...
point values to their integer representation through the SSE intrinsic
calls. This is the last part of a README.txt entry for which I have real
world examples.
llvm-svn: 123206
2011-01-11 01:07:24 +00:00
Chandler Carruth
acb82e863d
FileCheck-ize a test, and move a no-longer calling test case to another
...
file and make it actually test something...
llvm-svn: 123205
2011-01-11 01:07:20 +00:00
Owen Anderson
4479341626
Fix a random missed optimization by making InstCombine more aggressive when determining which bits are demanded by
...
a comparison against a constant.
llvm-svn: 123203
2011-01-11 00:36:45 +00:00
Eric Christopher
5a4d64216f
Move ExpandAtomic into the integer expansion routines - it's only used there.
...
llvm-svn: 123202
2011-01-11 00:36:08 +00:00
Eric Christopher
68263285d5
Even if we don't have 7 bytes of stack space we may need to save and
...
restore the stack pointer from the frame pointer on thumbv6.
Fixes rdar://8819685
llvm-svn: 123196
2011-01-11 00:16:04 +00:00
Eric Christopher
934fa0fca0
Expand on the safeness of restoring the sp from the fp a bit more.
...
llvm-svn: 123193
2011-01-10 23:10:59 +00:00
Dale Johannesen
cd78621861
Fix PR 8916 (qv for analysis), at least the immediate problem.
...
There's an inherent tension in DAGCombine between assuming
that things will be put in canonical form, and the Depth
mechanism that disables transformations when recursion gets
too deep. It would not surprise me if there's a lot of little
bugs like this one waiting to be discovered. The mechanism
seems fragile and I'd suggest looking at it from a design viewpoint.
llvm-svn: 123191
2011-01-10 21:53:07 +00:00
Chris Lattner
c46188944e
+0.0 vs -0.0 differences can be handled by looking at the user of the
...
operation in some cases.
llvm-svn: 123190
2011-01-10 21:01:17 +00:00
Daniel Dunbar
0e9ece99bb
McARM: Flush out hard coded known non-predicated mnemonic list.
...
llvm-svn: 123189
2011-01-10 21:01:03 +00:00
Daniel Dunbar
3567bd2bcb
McARM: Mark some T2 ...s instructions as codegen only, they aren't real
...
instructions but are restricted pseudo forms.
llvm-svn: 123177
2011-01-10 15:26:39 +00:00
Daniel Dunbar
acb825eae8
ARM/MC: Mark several '...S' instructions as codegen only, they aren't real
...
instructions but are restricted pseudo forms.
llvm-svn: 123176
2011-01-10 15:26:35 +00:00
Daniel Dunbar
9e911c13c5
MC/ARM/AsmParser: Minor nitty fixes.
...
llvm-svn: 123175
2011-01-10 15:26:21 +00:00