Chris Lattner
802ebf9561
Fix the case when a reference to an address taken BB is emitted in one
...
function, then the BB is RAUW'd before the definition is emitted. There
are still two cases not being handled, but this should improve us back to
the situation before I touched anything.
llvm-svn: 98566
2010-03-15 19:09:43 +00:00
Devang Patel
e100b5ba38
In "empty" bb, the return instruction may not be first instruction, if dbg value intrinsics are present in this bb. Use terminator to find return instructions.
...
llvm-svn: 98565
2010-03-15 19:05:46 +00:00
Bill Wendling
b8ec72ddcb
Place the LSDA into the TEXT section for x86 Darwin. If the global it's pointing
...
to is local to the translation unit, we need to place fill the value of that
symbol into the non-lazy pointer.
This should conclude all Darwin changes for placing the LSDA into the TEXT
section. There is some cleanup to do. I.e., there's no longer a special need for
target-specific code here. But that can come later.
llvm-svn: 98564
2010-03-15 19:04:37 +00:00
Evan Cheng
bcd8655d1d
Avoid sibcall optimization if either caller or callee is using sret semantics.
...
llvm-svn: 98561
2010-03-15 18:54:48 +00:00
Chris Lattner
9f4f6954f7
revert r98550, it isn't necessary or sufficient.
...
llvm-svn: 98558
2010-03-15 18:42:01 +00:00
Devang Patel
3244526a3b
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions.
...
This is a work in progress.
llvm-svn: 98556
2010-03-15 18:33:46 +00:00
Chris Lattner
a8214d0775
don't eliminate address-taken blocks here.
...
llvm-svn: 98550
2010-03-15 16:37:42 +00:00
Chris Lattner
a8e4282df3
SIGN_EXTEND from the same type as the dest is valid.
...
llvm-svn: 98548
2010-03-15 16:15:56 +00:00
Chris Lattner
89c2d22d3d
sink the call to VT.getSizeInBits() down into its uses,
...
not all unary nodes necessarily have a simple result type.
llvm-svn: 98547
2010-03-15 16:05:15 +00:00
Duncan Sands
70e2bb5875
Treat copysignl like the other copysign functions.
...
llvm-svn: 98542
2010-03-15 14:01:44 +00:00
Jeffrey Yasskin
9305e5644b
Don't save a temporary string into a StringRef field.
...
llvm-svn: 98538
2010-03-15 06:59:21 +00:00
Chris Lattner
b24982ba65
fix MCSectionELF to not leak memory, just like I did for MCSymbol.
...
MCSectionMachO is already fine (yay for fixed size arrays?),
MCSectionCOFF still leaks.
llvm-svn: 98537
2010-03-15 06:23:52 +00:00
Chris Lattner
1b10191d18
fix a memory leak yjasskin pointed out: MCSymbol is bump pointer
...
allocated and thus not freed. This is cool except that it contains
and std::string so the string data didn't get freed. In any case
there is no reason to redundantly store the string data in the
MCSymbol anyway, just make the MCSymbol ref the string data in the
MCContext StringMap.
llvm-svn: 98536
2010-03-15 06:15:35 +00:00
Chris Lattner
02bf60555d
eliminate some #if 0 code I added in r96905, type inference
...
now enforces that input/output named values have hte same type.
llvm-svn: 98535
2010-03-15 06:03:22 +00:00
Chris Lattner
c008597c0a
Completely rewrite tblgen's type inference mechanism,
...
changing the primary datastructure from being a
"std::vector<unsigned char>" to being a new TypeSet class
that actually has (gasp) invariants!
This changes more things than I remember, but one major
innovation here is that it enforces that named input
values agree in type with their output values.
This also eliminates code that transparently assumes (in
some cases) that SDNodeXForm input/output types are the
same, because this is wrong in many case.
This also eliminates a bug which caused a lot of ambiguous
patterns to go undetected, where a register class would
sometimes pick the first possible type, causing an
ambiguous pattern to get arbitrary results.
With all the recent target changes, this causes no
functionality change!
llvm-svn: 98534
2010-03-15 06:00:16 +00:00
Chris Lattner
89a4faa0fc
MachineMove ctor doesn't need to to mutate input, add 'const'
...
llvm-svn: 98533
2010-03-15 05:55:35 +00:00
Chris Lattner
28d2398af5
do some serious surgery on CellSPU to get it back into a world
...
where it uses types consistently.
llvm-svn: 98532
2010-03-15 05:53:47 +00:00
Chris Lattner
2c1e56e067
fix a few more ambiguous types.
...
llvm-svn: 98531
2010-03-15 05:53:30 +00:00
Chris Lattner
f2c6e96a15
add some missing types
...
llvm-svn: 98530
2010-03-15 05:35:37 +00:00
Jeffrey Yasskin
f468a14fb1
Tell Valgrind when we modify already-executed machine code so it knows
...
to re-instrument the code. We depend on the system valgrind.h to
avoid adding a new license.
llvm-svn: 98529
2010-03-15 04:57:55 +00:00
Chris Lattner
a0ac2d995f
various cleanups from daniel
...
llvm-svn: 98528
2010-03-15 04:12:21 +00:00
Chris Lattner
5d97a9a10d
fix an ambiguous pattern, contrary to expectations, scalar_to_vector
...
doesn't have a type constraint on the scalar because we don't have
an 'sAny' type.
llvm-svn: 98527
2010-03-15 00:52:43 +00:00
Chris Lattner
37c5893297
remove dead method.
...
llvm-svn: 98526
2010-03-15 00:00:42 +00:00
Chris Lattner
aa217407b9
don't forget to close a FD on an error condition, found by
...
cppcheck, PR6617. Patch by Ettl Martin!
llvm-svn: 98525
2010-03-14 23:16:45 +00:00
Chris Lattner
7c46b31729
tidy up and expound more on how half-float works.
...
llvm-svn: 98524
2010-03-14 23:03:31 +00:00
Chris Lattner
241e8fa570
tidy indentation
...
llvm-svn: 98523
2010-03-14 22:44:11 +00:00
Chris Lattner
1b5fdcde7a
no really, all 64-bit cpu's have cmov support. This should
...
fix the rest of the buildbot failures on non-x86 hosts.
llvm-svn: 98522
2010-03-14 22:39:35 +00:00
Chris Lattner
8be174c089
filecheckize a test and mark these wiht a cpu so it passes
...
on hosts without cmovs.
llvm-svn: 98521
2010-03-14 22:31:16 +00:00
Chris Lattner
7d4cb40969
all 64-bit cpus have cmov, this should fix CodeGen/X86/cmov.ll
...
(at least) on non-x86 builders.
llvm-svn: 98520
2010-03-14 22:24:34 +00:00
Benjamin Kramer
be3d9aadbd
Remove pointless forward declaration, MSVC got confused by this.
...
llvm-svn: 98519
2010-03-14 22:00:28 +00:00
Duncan Sands
217cec1786
Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes
...
with ppc_f128 type by having the type legalizer turn these back into a
call to copysignl.
llvm-svn: 98514
2010-03-14 21:08:40 +00:00
Evan Cheng
f91618ae9f
Rename SDDbgValue.h to SDNodeDbgValue.h for consistency.
...
llvm-svn: 98513
2010-03-14 19:56:39 +00:00
Chris Lattner
70eca8f78e
fix ShrinkDemandedOps to not leave dead nodes around,
...
fixing PR6607
llvm-svn: 98512
2010-03-14 19:46:02 +00:00
Chris Lattner
5393443ed6
rewrite ShrinkDemandedOps to be faster and indent less,
...
no functionality change.
llvm-svn: 98511
2010-03-14 19:43:04 +00:00
Evan Cheng
6bc9eccbe4
Fix jit encoding bugs.
...
llvm-svn: 98510
2010-03-14 19:28:34 +00:00
Chris Lattner
f656ba2910
make -view-isel-dags print after the 'ShrinkDemandedOps' pass.
...
llvm-svn: 98509
2010-03-14 19:27:55 +00:00
Chris Lattner
95e0a61b2d
don't have i386-specific tests in CodeGen/Generic, PR6601.
...
llvm-svn: 98508
2010-03-14 18:51:18 +00:00
Chris Lattner
c50b8b27f5
fix PR6605, X86ISD::CMP always returns i32 (EFLAGS), not
...
the operand type.
llvm-svn: 98507
2010-03-14 18:44:35 +00:00
Anton Korobeynikov
9333c20518
Fix typo
...
llvm-svn: 98506
2010-03-14 18:42:52 +00:00
Anton Korobeynikov
51a709db4d
Document fp16 intrinsics
...
llvm-svn: 98505
2010-03-14 18:42:47 +00:00
Anton Korobeynikov
3997a71ef8
Feature test for half precision FP.
...
llvm-svn: 98504
2010-03-14 18:42:43 +00:00
Anton Korobeynikov
90fcfccc91
Add substarget feature for FP16
...
llvm-svn: 98503
2010-03-14 18:42:38 +00:00
Anton Korobeynikov
48357cdc62
Add codegen support for FP16 on ARM
...
llvm-svn: 98502
2010-03-14 18:42:31 +00:00
Anton Korobeynikov
2cb4451ae6
Make default expansion for FP16 <-> FP32 nodes into libcalls
...
llvm-svn: 98501
2010-03-14 18:42:24 +00:00
Anton Korobeynikov
95f830f289
Add DAG nodes to represent FP16 <-> FP32 intrinsics
...
llvm-svn: 98500
2010-03-14 18:42:15 +00:00
Anton Korobeynikov
2f953c5850
Cleanup
...
llvm-svn: 98499
2010-03-14 18:42:08 +00:00
Anton Korobeynikov
e29762e78e
The fp16 <-> fp32 intrinsics are pure, mark them so they can be CSE'd, etc.
...
llvm-svn: 98498
2010-03-14 18:42:04 +00:00
Anton Korobeynikov
92e88294ce
Add intrinsics to represent fp16 <-> fp32 conversions
...
llvm-svn: 98497
2010-03-14 18:41:50 +00:00
Chris Lattner
1469c1b01e
add support for pentium class CPUs which do not have cmov,
...
PR4841. Patch by Craig Smith!
llvm-svn: 98496
2010-03-14 18:31:44 +00:00
Chris Lattner
2bdb0765f8
fix AsmPrinter::GetBlockAddressSymbol to always return a unique
...
label instead of trying to form one based on the BB name (which
causes collisions if the name is empty). This fixes PR6608
llvm-svn: 98495
2010-03-14 17:53:23 +00:00