Jason W Kim
6464be5b92
JimG sez: "The value-kinds look like masks, but they're not consistently used
...
that way, unfortunately. If you want to change them to work additively instead
of a one-variant-kind-per-symbolref, that's great and I completely agree it's
worth doing, but it really should be a separate patch. Until then, this isn't
correct."
So I am reverting this bit until a more opportune time.
llvm-svn: 123340
2011-01-12 23:21:49 +00:00
Jakob Stoklund Olesen
953b1b115d
Don't emit a DBG_VALUE for a spill slot that the rewriter decided not to use after all.
...
llvm-svn: 123339
2011-01-12 23:14:07 +00:00
Jakob Stoklund Olesen
48c7a5cf7e
Fix braino in dominator tree walk.
...
llvm-svn: 123338
2011-01-12 23:14:04 +00:00
Jakob Stoklund Olesen
7a13190a2e
Sometimes, old virtual registers can linger on DBG_VALUE instructions.
...
Make sure we don't crash in that case, but simply turn them into %noreg instead.
llvm-svn: 123335
2011-01-12 22:37:49 +00:00
Jakob Stoklund Olesen
59d3b89873
Teach VirtRegRewriter to update slot indexes when erasing instructions.
...
It was leaving dangling pointers in the slot index maps.
llvm-svn: 123334
2011-01-12 22:28:51 +00:00
Jakob Stoklund Olesen
8c5c268f05
Annotate VirtRegRewriter debug output with slot indexes.
...
llvm-svn: 123333
2011-01-12 22:28:48 +00:00
Jakob Stoklund Olesen
c1a042a528
Verify slot index ordering.
...
The slot indexes must be monotonically increasing through the function.
llvm-svn: 123324
2011-01-12 21:27:48 +00:00
Jakob Stoklund Olesen
22bdcea2fd
Assert if anybody tries to put a slot index on a DBG_VALUE instruction.
...
llvm-svn: 123323
2011-01-12 21:27:45 +00:00
Jakob Stoklund Olesen
764cce86f0
Verify that machine instruction parent pointers are consistent.
...
llvm-svn: 123322
2011-01-12 21:27:41 +00:00
Bill Wendling
e82361731d
Sort the register list based on the *actual* register numbers rather than the
...
enum values we give to them. <rdar://problem/8823730>
llvm-svn: 123321
2011-01-12 21:20:59 +00:00
Devang Patel
52db9b4821
Use SmallVector instead of SmallPtrSet and avoid non-deterministic behavior.
...
llvm-svn: 123318
2011-01-12 19:12:45 +00:00
Matt Beaumont-Gay
fc76b0ce6e
Mostly undo r123297, but move the default case in EvaluateAsPCRel to the top
...
of the switch block to appease GCC.
llvm-svn: 123317
2011-01-12 18:02:55 +00:00
Nick Lewycky
fb3f7c11f1
Add another note taken from the gcc bugzilla.
...
llvm-svn: 123315
2011-01-12 09:06:19 +00:00
Venkatraman Govindaraju
2d89fea217
Implement RETURNADDR and FRAMEADDR lowering in SPARC backend.
...
llvm-svn: 123310
2011-01-12 05:08:36 +00:00
Venkatraman Govindaraju
59e9ffc998
Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to
...
ensure %o7 is not assigned as the destination of getpcx instruction.
llvm-svn: 123304
2011-01-12 03:52:59 +00:00
Chris Lattner
fdef60bef7
revert 123144, reenabling the rest of memset formation.
...
llvm-svn: 123302
2011-01-12 03:25:15 +00:00
Venkatraman Govindaraju
816f7dfed0
Fix SPARC backend call instruction so that arguments passed through registers
...
are correctly marked as used instead of passing all possible argument registers
as used.
llvm-svn: 123301
2011-01-12 03:18:21 +00:00
Chris Lattner
e288204194
revert r123146 which disabled code that wasn't the root cause
...
of the bootstrap miscompare issue.
llvm-svn: 123299
2011-01-12 01:52:23 +00:00
Chris Lattner
c7a5a12af5
revert r123149, reenabling an improvement to memcpyopt that wasn't
...
the source of the bootstrap problem.
llvm-svn: 123298
2011-01-12 01:43:46 +00:00
Matt Beaumont-Gay
033b288e84
Prefer llvm_unreachable to assert(0)
...
llvm-svn: 123297
2011-01-12 01:42:42 +00:00
Jason W Kim
ae183f9862
1. Support ELF pcrel relocations for movw/movt:
...
R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC.
2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum.
3. Add support for 3 new elf section types (no-ops)
llvm-svn: 123294
2011-01-12 00:19:25 +00:00
Jason W Kim
db6eddeea3
Workaround for bug 8721.
...
.s Test added.
llvm-svn: 123292
2011-01-11 23:53:41 +00:00
Jakob Stoklund Olesen
1f7052b53b
The world is not ready for LiveDebugVariables yet.
...
llvm-svn: 123290
2011-01-11 23:20:33 +00:00
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