Duncan Sands
f4fe76d46b
Dan noticed that the verifier wasn't thoroughly checking uses of
...
invoke results (see the testcases). Tighten up the checking.
llvm-svn: 72586
2009-05-29 19:39:36 +00:00
Bruno Cardoso Lopes
6ec3c6fab6
Fix some typos
...
llvm-svn: 72579
2009-05-29 17:08:57 +00:00
Torok Edwin
845fc92978
just show the instruction, its not that slow.
...
llvm-svn: 72577
2009-05-29 16:58:36 +00:00
Torok Edwin
a4ebdef3e8
for instructions with void type we have no choice but print the instruction as
...
is, otherwise we get a <badref>.
llvm-svn: 72567
2009-05-29 10:28:44 +00:00
Torok Edwin
4a228edc3a
Add a DEBUG() output to GVN that prints the instruction clobbering a load.
...
This is useful when trying to figure out why GVN didn't eliminate redundant
loads.
llvm-svn: 72565
2009-05-29 09:46:03 +00:00
Owen Anderson
09c469ec35
Fix an issue where phiMap was not being updated properly when doing load PRE.
...
Diagnosis and patch thanks to Jakub Staszak.
llvm-svn: 72562
2009-05-29 05:37:54 +00:00
Evan Cheng
f911a0825b
Default isNarrowingProfitable to false.
...
llvm-svn: 72561
2009-05-29 05:31:40 +00:00
Evan Cheng
57f85a1529
Remove an accidental commit.
...
llvm-svn: 72560
2009-05-29 05:28:52 +00:00
Evan Cheng
550fc9ba9f
More h-registers tricks: folding zext nodes.
...
llvm-svn: 72558
2009-05-29 01:44:43 +00:00
Evan Cheng
a36a15ff66
Do not try to create a MVT type of width 0.
...
llvm-svn: 72557
2009-05-28 23:52:18 +00:00
Bill Wendling
dd6cbdb28c
The MONITOR and MWAIT instructions have insufficient information for
...
decoding. Essentially, they both map to the same column in the "opcode
extensions for one- and two-byte opcodes" table in the x86 manual. The RawFrm
complicates decoding this.
Instead, use opcode 0x01, prefix 0x01, and form MRM1r. Then have the code
emitter special case these, a la [SML]FENCE.
llvm-svn: 72556
2009-05-28 23:40:46 +00:00
Daniel Dunbar
d70415d602
NewNightlyTest.pl: Add a -parallel-jobs argument (set # of jobs for make with
...
-parallel, instead of always using 2).
llvm-svn: 72551
2009-05-28 22:45:24 +00:00
Eli Friedman
5a376ed43e
Add explicit test for PR4280.
...
llvm-svn: 72539
2009-05-28 21:04:35 +00:00
Eli Friedman
847816ce19
Re-commit r72514 and r72516 with a fixed version of BR_CC lowering.
...
This patch removes some special cases for opcodes and does a bit of
cleanup.
llvm-svn: 72536
2009-05-28 20:40:34 +00:00
Evan Cheng
3d35b7e54c
Fix MOVMSKPDrr encoding.
...
llvm-svn: 72535
2009-05-28 18:55:28 +00:00
Evan Cheng
99643b717c
Fix PSIGND encoding bug. Patch by Sean Callanan.
...
llvm-svn: 72534
2009-05-28 18:48:53 +00:00
Evan Cheng
30cec6ac75
Incorporate patch feedbacks.
...
llvm-svn: 72533
2009-05-28 18:41:02 +00:00
Daniel Dunbar
bf3a09e3ee
NightlyTest: Write "sentdata.txt" files and run the -submit-aux script before
...
sending data to the server.
- Otherwise if the server connection fails the external script never runs.
Also, create content before initiating connection to try and decrease time we
are connected to llvm.org.
llvm-svn: 72532
2009-05-28 18:31:40 +00:00
Sanjiv Gupta
c31e720f0e
Emit debug info for locals with proper scope.
...
llvm-svn: 72531
2009-05-28 18:24:11 +00:00
Bill Wendling
772ce6d8be
Temporarily revert r72514 (and dependent patch r72516). It was causing this
...
failure during llvm-gcc bootstrap:
Assertion failed: (!Tmp2.getNode() && "Can't legalize BR_CC with legal condition!"), function ExpandNode, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 2923.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1727: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
llvm-svn: 72530
2009-05-28 18:18:59 +00:00
Sanjiv Gupta
efc1b70b9e
Mark the branch insns correctly.
...
llvm-svn: 72529
2009-05-28 17:32:56 +00:00
Sanjiv Gupta
b8df12a7ab
Fixing problems that got exposed after the refactoring of LegalizeDAG done in 72447.
...
llvm-svn: 72521
2009-05-28 06:59:57 +00:00
Eli Friedman
8b0b7c2d6d
Add a testcase which got fixed by recent legalization work.
...
llvm-svn: 72517
2009-05-28 05:10:20 +00:00
Eli Friedman
1527c49c0d
Remove a couple of useless functions.
...
llvm-svn: 72516
2009-05-28 04:49:34 +00:00
Eli Friedman
bdd4f7f8d3
Remove special cases for more opcodes.
...
This is basically the end of this series of patches for LegalizeDAG; the
remaining special cases can't be removed without more infrastructure
work. There's a FIXME for each relevant opcode near the beginning of
SelectionDAGLegalize::LegalizeOp.
llvm-svn: 72514
2009-05-28 04:39:57 +00:00
Eli Friedman
c21c8b3311
Return the operand rather than a null SDValue when the given SELECT_CC
...
is actually legal. Part of LegalizeDAG cleanups.
llvm-svn: 72513
2009-05-28 04:31:08 +00:00
Nick Lewycky
3dd0d690f3
Use Operands.data() instead of &Operands[0] where Operands is a potentially
...
empty SmallVector.
llvm-svn: 72512
2009-05-28 04:08:10 +00:00
Eli Friedman
9928c800a4
Remove special case for SETCC opcode; add some comments explaining why
...
some special cases are necessary.
llvm-svn: 72511
2009-05-28 03:56:57 +00:00
Jeffrey Yasskin
c1c46c8efb
This patch brings the list of attributes in CPPBackend.cpp up to date with the
...
list in Attributes.h. It also reorders the CPPBackend list to match so that
it's easier to see that it's complete.
llvm-svn: 72510
2009-05-28 03:16:17 +00:00
Eli Friedman
57e6211262
Some minor cleanups.
...
llvm-svn: 72509
2009-05-28 03:06:16 +00:00
Bill Wendling
8a8d271d29
"The instructions MMX_PSADBWrm and MMX_PSADBWrr have opcode 0b11100000 (e0), but
...
the Intel manual (screenshot) says it should be 0b11110110 (f6). The existing
encoding causes a disassembly conflict with MMX_PAVGBrm, which really should be
0f e0."
Patch by Sean Callanan!
llvm-svn: 72508
2009-05-28 02:04:00 +00:00
Evan Cheng
40810c4d1b
Added optimization that narrow load / op / store and the 'op' is a bit twiddling instruction and its second operand is an immediate. If bits that are touched by 'op' can be done with a narrower instruction, reduce the width of the load and store as well. This happens a lot with bitfield manipulation code.
...
e.g.
orl $65536, 8(%rax)
=>
orb $1, 10(%rax)
Since narrowing is not always a win, e.g. i32 -> i16 is a loss on x86, dag combiner consults with the target before performing the optimization.
llvm-svn: 72507
2009-05-28 00:35:15 +00:00
Dan Gohman
2884c5153c
Revert 72493 and replace it with a more conservative fix, for now: don't
...
rewrite the comparison if there is any implicit extension or truncation
on the induction variable. I'm planning for IVUsers to eventually take
over some of the work of this code, and for it to be generalized.
llvm-svn: 72496
2009-05-27 21:10:47 +00:00
Eli Friedman
9a87deee7e
Ger rid of some dead code.
...
llvm-svn: 72494
2009-05-27 20:39:00 +00:00
Dan Gohman
994001e5ef
In ChangeCompareStride, when the stride to be reused is truncated to
...
a smaller type, promoted its offset back up to the type of the new
comparison. This fixes PR4222.
llvm-svn: 72493
2009-05-27 20:00:18 +00:00
Evan Cheng
9fd570a8a1
Fix sfence jit encoding. Patch by Sean Callanan.
...
llvm-svn: 72488
2009-05-27 18:38:01 +00:00
Bill Wendling
2944bcd25c
This looks like it passes now.
...
llvm-svn: 72485
2009-05-27 17:43:21 +00:00
Bruno Cardoso Lopes
ddcbc31a99
Added support for fround, fextend and FP_TO_SINT
...
llvm-svn: 72483
2009-05-27 17:23:44 +00:00
Douglas Gregor
4d8d0356d0
Minor fix for CMake build system
...
llvm-svn: 72480
2009-05-27 16:52:17 +00:00
Oscar Fuentes
72dd52b258
CMake: Set LIBS on llvm-config so we can query the system libraries
...
used by CMake with --ldflags.
llvm-svn: 72470
2009-05-27 15:49:33 +00:00
Eli Friedman
15bf5ba18b
Minor cleanups; add a better explanation for the issue with
...
BUILD_VECTOR.
llvm-svn: 72469
2009-05-27 12:42:55 +00:00
Eli Friedman
6c08124766
Remove more special cases for opcodes.
...
llvm-svn: 72468
2009-05-27 12:20:41 +00:00
Eli Friedman
c3c622df8e
Remove special cases for more opcodes.
...
llvm-svn: 72467
2009-05-27 07:58:35 +00:00
Eli Friedman
931b38ecfe
Removing more special cases from LegalizeDAG.
...
llvm-svn: 72465
2009-05-27 07:32:27 +00:00
Eli Friedman
2080604056
Eliminate more special cases for opcodes.
...
llvm-svn: 72464
2009-05-27 07:05:37 +00:00
Eli Friedman
12fa5c7acf
Remove more special cases from LegalizeDAG.
...
llvm-svn: 72456
2009-05-27 03:33:44 +00:00
Eli Friedman
9a7c584e6a
Remove unused argument.
...
llvm-svn: 72455
2009-05-27 02:21:29 +00:00
Eli Friedman
a6ff2e5bce
Remove more opcode special cases.
...
llvm-svn: 72454
2009-05-27 02:16:40 +00:00
Dan Gohman
491de1fe7e
Add braces around an array initializer.
...
llvm-svn: 72453
2009-05-27 02:07:15 +00:00
Dan Gohman
0124c21ba0
Teach SCEVExpander to avoid creating over-indexed GEP indices when
...
possible. For example, it now emits
%p.2.ip.1 = getelementptr [3 x [3 x double]]* %p, i64 2, i64 %tmp, i64 1
instead of the equivalent but less obvious
%p.2.ip.1 = getelementptr [3 x [3 x double]]* %p, i64 0, i64 %tmp, i64 19
llvm-svn: 72452
2009-05-27 02:00:53 +00:00