Lang Hames
68dd9c7dd7
Fixed malformed -*- lines in PBQP headers.
...
llvm-svn: 92830
2010-01-06 08:53:34 +00:00
Jakob Stoklund Olesen
7725526de1
Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills.
...
An instruction like this:
%reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0
Must be replaced with this when substituting physical registers:
%S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def>
llvm-svn: 92812
2010-01-06 00:29:28 +00:00
Bill Wendling
c075acbb54
The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 order.
...
llvm-svn: 92810
2010-01-06 00:23:35 +00:00
Bill Wendling
578865ff3d
Only check the ordering if there is an ordering for each nodes.
...
llvm-svn: 92807
2010-01-06 00:09:23 +00:00
Bill Wendling
0a7056fe52
Add a semi-primitive form of scheduling via the "SDNode ordering" to the
...
bottom-up scheduler. We prefer the lower order number.
llvm-svn: 92806
2010-01-05 23:48:12 +00:00
Bill Wendling
03f0af372c
Don't assign the shift the same type as the variable being shifted. This could
...
result in illegal types for the SHL operator.
llvm-svn: 92797
2010-01-05 22:39:10 +00:00
Dan Gohman
404a984780
Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen
...
uses several kinds of opcode values which are not declared within
that enum. This fixes PR5946.
llvm-svn: 92794
2010-01-05 22:26:32 +00:00
Dan Gohman
c3f2137c06
Restore dump() methods to Loop and MachineLoop.
...
llvm-svn: 92772
2010-01-05 21:08:02 +00:00
Benjamin Kramer
d2564e3afb
Move remaining stuff to the isInteger predicate.
...
llvm-svn: 92771
2010-01-05 21:05:54 +00:00
Jakob Stoklund Olesen
4cb7702c4f
Remove livein checks from machine code verifier.
...
A phi operand that is implicitly defined in a predecessor becomes an undefined
register after phi elimination. This causes a lot of false positives when the
verifier is checking if live-in registers are live-out from all predecessors.
Removing the verifier checks seems like a better solution than insisting on
IMPLICIT_DEF instructions in predecessor blocks.
llvm-svn: 92769
2010-01-05 20:59:36 +00:00
Devang Patel
d146e2e3df
If a scope has only one instruction then first instruction is also the last instruction.
...
llvm-svn: 92736
2010-01-05 16:59:17 +00:00
Benjamin Kramer
ccce8bae14
Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer.
...
llvm-svn: 92726
2010-01-05 13:12:22 +00:00
Devang Patel
33f80d2303
Delete renaming use of dead dbg intrinsics.
...
Intrinsic::dbg_stoppoint
Intrinsic::dbg_region_start
Intrinsic::dbg_region_end
Intrinsic::dbg_func_start
llvm-svn: 92672
2010-01-05 01:47:06 +00:00
Devang Patel
43ef34d2a5
Use StringRef.startswith().
...
llvm-svn: 92671
2010-01-05 01:46:14 +00:00
David Greene
30ed3ca034
Change errs() to dbgs().
...
llvm-svn: 92597
2010-01-05 01:26:11 +00:00
David Greene
d18966c79f
Change errs() to dbgs().
...
llvm-svn: 92596
2010-01-05 01:26:09 +00:00
David Greene
fc886b99da
Change errs() to dbgs().
...
llvm-svn: 92595
2010-01-05 01:26:05 +00:00
David Greene
aa8ce38113
Change errs() to dbgs().
...
llvm-svn: 92594
2010-01-05 01:26:01 +00:00
David Greene
4b7aa24842
Change errs() to dbgs().
...
llvm-svn: 92593
2010-01-05 01:26:00 +00:00
David Greene
7e34eadd91
Change errs() to dbgs().
...
llvm-svn: 92592
2010-01-05 01:25:58 +00:00
David Greene
9f23703919
Change errs() to dbgs().
...
llvm-svn: 92591
2010-01-05 01:25:55 +00:00
David Greene
e3f851db18
Change errs() to dbgs().
...
llvm-svn: 92590
2010-01-05 01:25:52 +00:00
David Greene
714520fb89
Change errs() to dbgs().
...
llvm-svn: 92589
2010-01-05 01:25:50 +00:00
David Greene
97d9fc8cdb
Change errs() to dbgs().
...
llvm-svn: 92588
2010-01-05 01:25:47 +00:00
David Greene
91c42f851b
Change errs() to dbgs().
...
llvm-svn: 92587
2010-01-05 01:25:45 +00:00
David Greene
7e256f397c
Change errs() to dbgs().
...
llvm-svn: 92586
2010-01-05 01:25:43 +00:00
David Greene
94745d0d10
Change errs() to dbgs().
...
llvm-svn: 92585
2010-01-05 01:25:41 +00:00
David Greene
0c1e7772fb
Change errs() to dbgs().
...
llvm-svn: 92584
2010-01-05 01:25:39 +00:00
David Greene
025e934d54
Change errs() to dbgs().
...
llvm-svn: 92583
2010-01-05 01:25:20 +00:00
David Greene
85afc853b5
Change errs() to dbgs().
...
llvm-svn: 92582
2010-01-05 01:25:15 +00:00
David Greene
4eb5bed65b
Change errs() to dbgs().
...
llvm-svn: 92581
2010-01-05 01:25:11 +00:00
David Greene
d65bc15c81
Change errs() to dbgs().
...
llvm-svn: 92580
2010-01-05 01:25:09 +00:00
David Greene
6f021a30fe
Change errs() to dbgs().
...
llvm-svn: 92579
2010-01-05 01:25:04 +00:00
David Greene
fe5c3524c7
Change errs() to dbgs().
...
llvm-svn: 92578
2010-01-05 01:25:00 +00:00
David Greene
5730f203ee
Change errs() to dbgs().
...
llvm-svn: 92577
2010-01-05 01:24:57 +00:00
David Greene
f34d7ac9f1
Change errs() to dbgs().
...
llvm-svn: 92576
2010-01-05 01:24:54 +00:00
David Greene
ae4f266b2d
Change errs() to dbgs().
...
llvm-svn: 92575
2010-01-05 01:24:53 +00:00
David Greene
ec5883fc0e
Change errs() to dbgs().
...
llvm-svn: 92574
2010-01-05 01:24:50 +00:00
David Greene
807fcf6374
Change errs() to dbgs().
...
llvm-svn: 92573
2010-01-05 01:24:48 +00:00
David Greene
40deefdc4f
Change errs() to dbgs().
...
llvm-svn: 92572
2010-01-05 01:24:45 +00:00
David Greene
63145844c8
Change errs() to dbgs().
...
llvm-svn: 92571
2010-01-05 01:24:43 +00:00
David Greene
4cec475ed7
Change errs() to dbgs().
...
llvm-svn: 92570
2010-01-05 01:24:40 +00:00
David Greene
d93137dce7
Change errs() to dbgs().
...
llvm-svn: 92569
2010-01-05 01:24:36 +00:00
David Greene
7562faa4cf
Change errs() to dbgs().
...
llvm-svn: 92568
2010-01-05 01:24:34 +00:00
David Greene
d7c266bb9c
Change errs() to dbgs().
...
llvm-svn: 92567
2010-01-05 01:24:28 +00:00
David Greene
2555292e44
Change errs() to dbgs().
...
llvm-svn: 92566
2010-01-05 01:24:24 +00:00
David Greene
ac9f8199ba
Change errs() to dbgs().
...
llvm-svn: 92565
2010-01-05 01:24:21 +00:00
Dan Gohman
ea6f91ff64
Change SelectCode's argument from SDValue to SDNode *, to make it more
...
clear what information these functions are actually using.
This is also a micro-optimization, as passing a SDNode * around is
simpler than passing a { SDNode *, int } by value or reference.
llvm-svn: 92564
2010-01-05 01:24:18 +00:00
David Greene
f62be0c0a6
Change errs() to dbgs().
...
llvm-svn: 92563
2010-01-05 01:24:08 +00:00
David Greene
646aacb097
Change errs() to dbgs().
...
llvm-svn: 92548
2010-01-05 00:10:05 +00:00
David Greene
55cf95c202
Change errs() to dbgs().
...
llvm-svn: 92547
2010-01-05 00:03:48 +00:00
David Greene
29388d6a6f
Change errs() to dbgs().
...
llvm-svn: 92545
2010-01-04 23:48:20 +00:00
David Greene
6671011c21
Change errs() to dbgs().
...
llvm-svn: 92544
2010-01-04 23:39:17 +00:00
David Greene
6c56cefe08
Change errs() to dbgs().
...
llvm-svn: 92542
2010-01-04 23:22:07 +00:00
David Greene
2ff921beef
Change errs() to dbgs().
...
llvm-svn: 92539
2010-01-04 23:14:46 +00:00
David Greene
c4878b132b
Change errs() to dbgs().
...
llvm-svn: 92535
2010-01-04 23:06:47 +00:00
Devang Patel
e6433faba6
Fix debug_inlined section entries for routines whose names are changed through __asm() extension.
...
llvm-svn: 92533
2010-01-04 23:04:36 +00:00
David Greene
d599dcd754
Change errs() to dbgs().
...
llvm-svn: 92532
2010-01-04 23:02:10 +00:00
David Greene
1a51a211c6
Change errs() to dbgs().
...
llvm-svn: 92529
2010-01-04 22:49:02 +00:00
David Greene
c215532318
Change errs() to dbgs().
...
llvm-svn: 92528
2010-01-04 22:41:43 +00:00
David Greene
ca15eaccbb
Change errs() to dbgs().
...
llvm-svn: 92524
2010-01-04 22:33:16 +00:00
David Greene
72e47cd670
Change errs() to dbgs().
...
llvm-svn: 92520
2010-01-04 22:02:01 +00:00
David Greene
ca553bd73f
Change errs() to dbgs().
...
llvm-svn: 92518
2010-01-04 21:48:34 +00:00
David Greene
821e67e25b
Change errs() to dbgs().
...
llvm-svn: 92516
2010-01-04 21:35:15 +00:00
David Greene
964a98221d
Change errs() to dbgs().
...
llvm-svn: 92515
2010-01-04 21:26:07 +00:00
Dan Gohman
feeced4104
Use a pointer type rather than MVT::Other for the ExternalSymbol node used
...
in an inline asm.
llvm-svn: 92512
2010-01-04 21:00:54 +00:00
Devang Patel
530a075f17
Fix begin and end markers for nested scopes.
...
llvm-svn: 92505
2010-01-04 20:44:00 +00:00
David Greene
af5b9a2d62
Change errs() to dbgs().
...
llvm-svn: 92502
2010-01-04 19:57:26 +00:00
David Greene
94cfbe1ddd
Change errs() to dbgs().
...
llvm-svn: 92498
2010-01-04 19:36:42 +00:00
David Greene
7af1efc1ae
Change errs() to dbgs().
...
llvm-svn: 92496
2010-01-04 19:10:20 +00:00
David Greene
96b90539d6
Change errs() to dbgs().
...
llvm-svn: 92490
2010-01-04 17:47:05 +00:00
Chris Lattner
1dae8766b1
fix PR5930, allowing the asmprinter to emit difference between
...
two labels as a truncate.
llvm-svn: 92455
2010-01-03 18:33:18 +00:00
Chris Lattner
1eea3b0ada
Teach codegen to handle:
...
(X != null) | (Y != null) --> (X|Y) != 0
(X == null) & (Y == null) --> (X|Y) == 0
so that instcombine can stop doing this for pointers. This is part of PR3351,
which is a case where instcombine doing this for pointers (inserting ptrtoint)
is pessimizing code.
llvm-svn: 92406
2010-01-02 00:00:03 +00:00
Chris Lattner
24576a5cf3
whitespace cleanup
...
llvm-svn: 92404
2010-01-01 23:37:34 +00:00
Mikhail Glushenkov
5c35d2f6a4
Fix a warning on gcc 4.4.
...
SelectionDAGBuilder.cpp:4294: warning: suggest explicit braces to avoid
ambiguous ‘else’
llvm-svn: 92395
2010-01-01 04:41:36 +00:00
Mikhail Glushenkov
2abe1b70ac
Trailing whitespace, 80-col violations.
...
llvm-svn: 92394
2010-01-01 04:41:22 +00:00
Chris Lattner
39f18e545e
Teach codegen to lower llvm.powi to an efficient (but not optimal)
...
multiply sequence when the power is a constant integer. Before, our
codegen for std::pow(.., int) always turned into a libcall, which was
really inefficient.
This should also make many gfortran programs happier I'd imagine.
llvm-svn: 92388
2010-01-01 03:32:16 +00:00
Chris Lattner
8e805be369
remove a bunch of unneeded functions.
...
llvm-svn: 92263
2009-12-29 09:32:19 +00:00
Chris Lattner
a0566979b7
Final step in the metadata API restructuring: move the
...
getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.
llvm-svn: 92259
2009-12-29 09:01:33 +00:00
Chris Lattner
2f2aa2b067
This is a major cleanup of the instruction metadata interfaces that
...
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().
This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.
This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.
This introduces a number of fixme's which I'll follow up on.
llvm-svn: 92235
2009-12-28 23:41:32 +00:00
Chris Lattner
7093946ab1
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind
...
doesn't exist already, eliminate registerMDKind. Tidy up a bunch
of random stuff.
llvm-svn: 92225
2009-12-28 20:45:51 +00:00
Chris Lattner
5a409bd17a
snip one more #include from Metadata.h
...
llvm-svn: 92214
2009-12-28 08:30:43 +00:00
Chris Lattner
f81add3fdf
move these out of their own timer groups into the 'uncategorized' groups.
...
llvm-svn: 92206
2009-12-28 07:41:18 +00:00
Sanjiv Gupta
0b00a1b54e
Allow targets to specify the return type of libcalls that are generated for floating point comparisons, rather than hard-coding them as i32.
...
llvm-svn: 92199
2009-12-28 02:40:33 +00:00
Bill Wendling
42bc7ad2b1
Remove dead store.
...
llvm-svn: 92190
2009-12-28 01:51:30 +00:00
Bill Wendling
5b8d89d0a2
Remove dead variable.
...
llvm-svn: 92189
2009-12-28 01:48:56 +00:00
Bill Wendling
9a62b467a8
Remove dead variable.
...
llvm-svn: 92188
2009-12-28 01:47:48 +00:00
Bill Wendling
798e1e6f71
Remove dead store.
...
llvm-svn: 92187
2009-12-28 01:44:39 +00:00
Bill Wendling
846ca9b38b
Remove dead variable.
...
llvm-svn: 92180
2009-12-28 01:02:21 +00:00
Bill Wendling
ee5ca6e962
Remove dead variable.
...
llvm-svn: 92179
2009-12-28 01:01:14 +00:00
Bill Wendling
7da8f90d41
Remove dead variable.
...
llvm-svn: 92178
2009-12-28 01:00:12 +00:00
Bill Wendling
ec030f2f01
Remove dead store.
...
llvm-svn: 92159
2009-12-25 13:45:50 +00:00
Bill Wendling
49fac47c83
Remove dead store from copy-pasto.
...
llvm-svn: 92158
2009-12-25 13:44:36 +00:00
Bill Wendling
8d1f801a01
Remove dead store.
...
llvm-svn: 92157
2009-12-25 13:39:58 +00:00
Bill Wendling
ba27bef114
Remove dead store.
...
llvm-svn: 92156
2009-12-25 13:37:27 +00:00
Chris Lattner
f5e3ed64d5
handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a
...
compare. On other targets we end up with a call to memcmp because we don't
want 16 individual byte loads. We should be able to use movups as well, but
we're failing to select the generated icmp.
llvm-svn: 92107
2009-12-24 01:07:17 +00:00
David Greene
e40730d8c7
Change errs() to dbgs().
...
llvm-svn: 92099
2009-12-24 00:39:02 +00:00
Chris Lattner
1a32ede6fd
move an optimization for memcmp out of simplifylibcalls and into
...
SDISel. This optimization was causing simplifylibcalls to
introduce type-unsafe nastiness. This is the first step, I'll be
expanding the memcmp optimizations shortly, covering things that
we really really wouldn't want simplifylibcalls to do.
llvm-svn: 92098
2009-12-24 00:37:38 +00:00
David Greene
d60abbf7f2
Change errs() to dbgs().
...
llvm-svn: 92097
2009-12-24 00:34:21 +00:00
David Greene
c230cb947a
Change errs() to dbgs().
...
llvm-svn: 92096
2009-12-24 00:31:35 +00:00
David Greene
8bc072cda6
Change errs() to dbgs().
...
llvm-svn: 92094
2009-12-24 00:27:55 +00:00
David Greene
75a2efb06d
Change errs() to dbgs().
...
llvm-svn: 92093
2009-12-24 00:14:25 +00:00
Nuno Lopes
129819de71
move a few more symbols to .rodata
...
llvm-svn: 92011
2009-12-23 17:48:10 +00:00
Dale Johannesen
a864a67185
Use more sensible type for flags in asms. PR 5570.
...
Patch by Sylve`re Teissier (sorry, ASCII only).
llvm-svn: 91988
2009-12-23 07:32:51 +00:00
Eric Christopher
fdb33458fc
Update objectsize intrinsic and associated dependencies. Fix
...
lowering code and update testcases.
llvm-svn: 91979
2009-12-23 02:51:48 +00:00
Bill Wendling
0602f39bb1
Remove superfluous SDNode ordering.
...
llvm-svn: 91971
2009-12-23 01:28:19 +00:00
Bill Wendling
9df5c6dfc3
Remove node ordering from inline asm nodes. It's not needed.
...
llvm-svn: 91961
2009-12-23 00:47:20 +00:00
Bill Wendling
91313064f1
Remove node ordering from VA nodes. It's not needed.
...
llvm-svn: 91958
2009-12-23 00:44:51 +00:00
Bill Wendling
ef408db250
Revert r91949 r91942 and r91936.
...
llvm-svn: 91953
2009-12-23 00:28:23 +00:00
Bill Wendling
54dd5398e0
Finish up node ordering in ExpandNode.
...
llvm-svn: 91949
2009-12-23 00:05:09 +00:00
Jakob Stoklund Olesen
b10c69edd0
Add coalescer asserts.
...
llvm-svn: 91945
2009-12-22 23:54:54 +00:00
Bill Wendling
ad1fdf0e40
Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function
...
is finished.
llvm-svn: 91942
2009-12-22 23:44:56 +00:00
Bill Wendling
70794596a8
Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP
...
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).
llvm-svn: 91936
2009-12-22 22:53:39 +00:00
Jakob Stoklund Olesen
200f82c889
Remove minimal CFG sanity checks from verifier.
...
These checks would often trigger on unreachable statements inserted by
bugpoint, leading it astray.
It would be nice if we could distinguish unreachable blocks from errors.
llvm-svn: 91923
2009-12-22 21:52:27 +00:00
Jakob Stoklund Olesen
3db4952357
Allow explicit %reg0 operands beyond what the .td file describes.
...
ARM uses these to indicate predicates.
llvm-svn: 91922
2009-12-22 21:48:20 +00:00
Bill Wendling
d85498132f
Allow 0 as an order number. Don't assign an order to formal arguments.
...
llvm-svn: 91920
2009-12-22 21:35:02 +00:00
Bob Wilson
bac37abe73
Report an error for bad inline assembly, where the value passed for an
...
"indirect" operand is not a pointer.
llvm-svn: 91913
2009-12-22 18:34:19 +00:00
Bill Wendling
919b7aab2e
Add more plumbing. This time in the LowerArguments and "get" functions which
...
return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880
2009-12-22 02:10:19 +00:00
Bill Wendling
ac08758b71
Add SDNode ordering to inlined asm and VA functions.
...
llvm-svn: 91876
2009-12-22 01:25:10 +00:00
Bill Wendling
f376c40d0e
Adding more assignment of ordering to SDNodes. This time in the "call" and
...
generic copy functions.
llvm-svn: 91872
2009-12-22 01:11:43 +00:00
Bill Wendling
a4d7df7a37
Add ordering of SDNodes to LowerCallTo.
...
llvm-svn: 91866
2009-12-22 00:50:32 +00:00
Bill Wendling
b99b2693f3
Now add ordering to SDNodes created by the massive intrinsic lowering function.
...
llvm-svn: 91863
2009-12-22 00:40:51 +00:00
Bill Wendling
ea3e73e596
To make things interesting, I added MORE code to set the ordering of
...
SDNodes. This time in the load/store and limited-precision code.
llvm-svn: 91860
2009-12-22 00:12:37 +00:00
Lang Hames
4c052261de
Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint.
...
This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals.
llvm-svn: 91859
2009-12-22 00:11:50 +00:00
Bill Wendling
c6b473433b
Add more plumbing to assign ordering to SDNodes. Have the "getValue" method
...
assign the ordering when called. Combine some of the ordering assignments to
keep things simple.
llvm-svn: 91857
2009-12-21 23:47:40 +00:00
Bill Wendling
e79105b591
More ordering plumbing. This time for GEP. I need to remember to assign
...
orderings to values returned by getValue().
llvm-svn: 91850
2009-12-21 23:10:19 +00:00
Bill Wendling
fff99f066b
Another incremental check-in for assigning ordering to SDNodes. This time for
...
shuffle and insert vector.
llvm-svn: 91847
2009-12-21 22:42:14 +00:00
Bill Wendling
443d0722b0
Assign ordering to more instructions. Incremental check-in.
...
llvm-svn: 91846
2009-12-21 22:30:11 +00:00
Bill Wendling
28727f3785
- Add a bit more plumbing assigning an order to SDNodes.
...
- Modify the "dump" method to emit the order of an SDNode.
llvm-svn: 91845
2009-12-21 21:59:52 +00:00
Bill Wendling
7f5eb53ce2
First wave of plumbing for assigning an ordering to SDNodes. This takes care of
...
a lot of the branching instructions.
llvm-svn: 91838
2009-12-21 19:59:38 +00:00
Bill Wendling
6de55a0efd
Place SDNodeOrdering.h in the directory it's used.
...
llvm-svn: 91834
2009-12-21 19:34:59 +00:00
Eric Christopher
a91c0f48e6
Fix setting and default setting of code model for jit. Do this
...
by allowing backends to override routines that will default
the JIT and Static code generation to an appropriate code model
for the architecture.
Should fix PR 5773.
llvm-svn: 91824
2009-12-21 08:15:29 +00:00
Douglas Gregor
740ab38bb7
Fix a bunch of little errors that Clang complains about when its being pedantic
...
llvm-svn: 91764
2009-12-19 07:05:23 +00:00
Anton Korobeynikov
10590171fa
Use 4-arg getVTList) variant instead of generic one, when possible
...
llvm-svn: 91744
2009-12-19 02:04:00 +00:00
Bill Wendling
022d18fa3f
Changes from review:
...
- Move DisableScheduling flag into TargetOption.h
- Move SDNodeOrdering into its own header file. Give it a minimal interface that
doesn't conflate construction with storage.
- Move assigning the ordering into the SelectionDAGBuilder.
This isn't used yet, so there should be no functional changes.
llvm-svn: 91727
2009-12-18 23:32:53 +00:00
Evan Cheng
b175de6356
Increase opportunities to optimize (brcond (srl (and c1), c2)).
...
llvm-svn: 91717
2009-12-18 21:31:31 +00:00
Dan Gohman
18fa5686f6
Add Loop contains utility methods for testing whether a loop
...
contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654
2009-12-18 01:24:09 +00:00
Bob Wilson
3152b0471b
Handle ARM inline asm "w" constraints with 64-bit ("d") registers.
...
The change in SelectionDAGBuilder is needed to allow using bitcasts to convert
between f64 (the default type for ARM "d" registers) and 64-bit Neon vector
types. Radar 7457110.
llvm-svn: 91649
2009-12-18 01:03:29 +00:00
John McCall
753100cef3
Sundry dependent-name fixes flagged by clang++.
...
llvm-svn: 91636
2009-12-17 23:49:16 +00:00
Bill Wendling
3c13667d14
Revert accidental commit.
...
llvm-svn: 91635
2009-12-17 23:45:18 +00:00
Bill Wendling
819c356a09
Turn off critical edge splitting for landing pads. The introduction of a
...
non-landing pad basic block as the successor to a block that ends in an
unconditional jump will cause block folding to remove the added block as a
successor. Thus eventually removing it AND the landing pad entirely. Critical
edge splitting is an optimization, so we can safely turn it off when dealing
with landing pads.
llvm-svn: 91634
2009-12-17 23:42:32 +00:00
Bill Wendling
03b5aed7d8
Temporarily revert 91337. It's causing testcase failures.
...
$ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91337 into '.':
U lib/CodeGen/AsmPrinter/DwarfException.cpp
llvm-svn: 91618
2009-12-17 20:41:01 +00:00
Ken Dyck
df5561db78
Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() in
...
LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple
type by one, getHalfSizedIntegerVT() searches for the smallest simple integer
type that is at least half the size of the type it is called on. This approach
has the advantage that it will continue working if a new value type (such as
i24) is added to MVT.
Also, in preparation for new value types, remove the assertions that
non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and
truncstore operations.
llvm-svn: 91614
2009-12-17 20:09:43 +00:00
Evan Cheng
ece104a0e1
Remove debugging code.
...
llvm-svn: 91604
2009-12-17 18:03:12 +00:00
Evan Cheng
090ac0865a
Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere.
...
llvm-svn: 91598
2009-12-17 09:39:49 +00:00
Bob Wilson
1c00b6964f
Fix a comment grammaro.
...
llvm-svn: 91584
2009-12-17 05:07:36 +00:00
Evan Cheng
aadf060b92
Revert this dag combine change:
...
Fold (zext (and x, cst)) -> (and (zext x), cst)
DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping.
llvm-svn: 91574
2009-12-17 00:40:05 +00:00
Daniel Dunbar
b827e52638
Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good.
...
llvm-svn: 91560
2009-12-16 20:10:05 +00:00
Jim Grosbach
2a282f2f86
Add @earlyclobber TableGen constraint
...
llvm-svn: 91554
2009-12-16 19:43:02 +00:00
Jakob Stoklund Olesen
ec20a88a57
Reuse lowered phi nodes.
...
Tail duplication produces lots of identical phi nodes in different basic
blocks. Teach PHIElimination to reuse the join registers when lowering a phi
node that is identical to an already lowered node. This saves virtual
registers, and more importantly it avoids creating copies the the coalescer
doesn't know how to eliminate.
Teach LiveIntervalAnalysis about the phi joins with multiple uses.
This patch significantly reduces code size produced by -pre-regalloc-taildup.
llvm-svn: 91549
2009-12-16 18:55:53 +00:00