Bruno Cardoso Lopes
af90a1cd26
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 23:50:33 +00:00
Bruno Cardoso Lopes
cc5fc60468
Add AMD64 elf machine type
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72635 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 21:05:47 +00:00
Bruno Cardoso Lopes
a3f99f9033
First patch in the direction of splitting MachineCodeEmitter in two subclasses:
...
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 20:51:52 +00:00
Chris Lattner
0e98e4d299
fix PR4284, a bug in simplifylibcalls handling memcmp. Patch by
...
Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72625 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 18:43:04 +00:00
Nick Lewycky
1e8c7a687d
Metadata uses metadata type not empty struct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72623 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 16:08:30 +00:00
Mike Stump
7d36d39e63
Add some documentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 15:19:29 +00:00
Duncan Sands
46c403d815
Adjust these tests now that "extern inline"
...
functions are being output with bodies and
available_externally linkage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72620 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 13:57:05 +00:00
Evan Cheng
cf7895ff8b
(i64 (zext (srl GR32 8))) -> movzbl AH is not safe since srl 8 only clear the top 8 bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72618 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 08:43:27 +00:00
Nick Lewycky
7a0370f66a
Give embedded metadata its own type instead of relying on EmptyStructTy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 05:06:04 +00:00
Mike Stump
c5ca713b80
Add support for letting the client choose different flavors of NaNs. Testcase to be
...
added in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72606 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 03:49:43 +00:00
Bill Wendling
51b16f4737
Untabification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72604 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 01:09:53 +00:00
Bill Wendling
4d4eab219a
Untabify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 00:58:37 +00:00
Evan Cheng
63d6f324ca
Untabify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72600 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-30 00:48:34 +00:00
Anton Korobeynikov
d4022c3fbb
Add placeholder for thumb2 stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72593 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 23:41:08 +00:00
Bill Wendling
3c04296b83
Enable GVN Load PRE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 20:38:16 +00:00
Duncan Sands
44008257a4
Dan noticed that the verifier wasn't thoroughly checking uses of
...
invoke results (see the testcases). Tighten up the checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72586 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 19:39:36 +00:00
Bruno Cardoso Lopes
d80ddc0b64
Fix some typos
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 17:08:57 +00:00
Torok Edwin
70ac142560
just show the instruction, its not that slow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72577 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 16:58:36 +00:00
Torok Edwin
7e55a00d06
for instructions with void type we have no choice but print the instruction as
...
is, otherwise we get a <badref>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 10:28:44 +00:00
Torok Edwin
3f3c6d4e5b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72565 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 09:46:03 +00:00
Owen Anderson
246ddf55d1
Fix an issue where phiMap was not being updated properly when doing load PRE.
...
Diagnosis and patch thanks to Jakub Staszak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72562 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 05:37:54 +00:00
Evan Cheng
abdbc57abb
Default isNarrowingProfitable to false.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 05:31:40 +00:00
Evan Cheng
8e610a7784
Remove an accidental commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 05:28:52 +00:00
Evan Cheng
cb219f0ef6
More h-registers tricks: folding zext nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-29 01:44:43 +00:00
Evan Cheng
d3c76bb6fc
Do not try to create a MVT type of width 0.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 23:52:18 +00:00
Bill Wendling
2265ba0717
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72556 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 23:40:46 +00:00
Daniel Dunbar
056dbd0645
NewNightlyTest.pl: Add a -parallel-jobs argument (set # of jobs for make with
...
-parallel, instead of always using 2).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72551 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 22:45:24 +00:00
Eli Friedman
f1f7c09390
Add explicit test for PR4280.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 21:04:35 +00:00
Eli Friedman
bbdd903c52
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72536 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 20:40:34 +00:00
Evan Cheng
8a0b2daac2
Fix MOVMSKPDrr encoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72535 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:55:28 +00:00
Evan Cheng
ed7f56b555
Fix PSIGND encoding bug. Patch by Sean Callanan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72534 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:48:53 +00:00
Evan Cheng
cdcecc03ce
Incorporate patch feedbacks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:41:02 +00:00
Daniel Dunbar
94a37a41eb
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72532 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:31:40 +00:00
Sanjiv Gupta
dd4694b519
Emit debug info for locals with proper scope.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:24:11 +00:00
Bill Wendling
43b41273f3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 18:18:59 +00:00
Sanjiv Gupta
a455942895
Mark the branch insns correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 17:32:56 +00:00
Sanjiv Gupta
df75a27609
Fixing problems that got exposed after the refactoring of LegalizeDAG done in 72447.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72521 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 06:59:57 +00:00
Eli Friedman
b999a7056e
Add a testcase which got fixed by recent legalization work.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 05:10:20 +00:00
Eli Friedman
e727d7a084
Remove a couple of useless functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 04:49:34 +00:00
Eli Friedman
1c39965342
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 04:39:57 +00:00
Eli Friedman
c06441e5ea
Return the operand rather than a null SDValue when the given SELECT_CC
...
is actually legal. Part of LegalizeDAG cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72513 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 04:31:08 +00:00
Nick Lewycky
e3f1fb1ee8
Use Operands.data() instead of &Operands[0] where Operands is a potentially
...
empty SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 04:08:10 +00:00
Eli Friedman
ad75460e30
Remove special case for SETCC opcode; add some comments explaining why
...
some special cases are necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72511 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 03:56:57 +00:00
Jeffrey Yasskin
2d92c71668
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72510 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 03:16:17 +00:00
Eli Friedman
3be2e514c9
Some minor cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72509 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 03:06:16 +00:00
Bill Wendling
3b1259bb9f
"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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 02:04:00 +00:00
Evan Cheng
8b944d39b3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72507 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-28 00:35:15 +00:00
Dan Gohman
c2695eba57
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72496 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27 21:10:47 +00:00
Eli Friedman
ba2352b066
Ger rid of some dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72494 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27 20:39:00 +00:00
Dan Gohman
ead28bd04b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-27 20:00:18 +00:00