Chris Lattner
ed7d10e100
SIGN_EXTEND from the same type as the dest is valid.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 16:15:56 +00:00
Chris Lattner
7fb5c2dbec
sink the call to VT.getSizeInBits() down into its uses,
...
not all unary nodes necessarily have a simple result type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 16:05:15 +00:00
Duncan Sands
87cd7ed408
Treat copysignl like the other copysign functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98542 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 14:01:44 +00:00
Jeffrey Yasskin
ad181304e1
Don't save a temporary string into a StringRef field.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98538 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:59:21 +00:00
Chris Lattner
1f8008cf21
fix MCSectionELF to not leak memory, just like I did for MCSymbol.
...
MCSectionMachO is already fine (yay for fixed size arrays?),
MCSectionCOFF still leaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98537 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:23:52 +00:00
Chris Lattner
c28cc093e3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98536 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:15:35 +00:00
Chris Lattner
e002da34ef
eliminate some #if 0 code I added in r96905, type inference
...
now enforces that input/output named values have hte same type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98535 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:03:22 +00:00
Chris Lattner
2cacec55f9
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98534 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 06:00:16 +00:00
Chris Lattner
6894b07996
MachineMove ctor doesn't need to to mutate input, add 'const'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98533 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 05:55:35 +00:00
Chris Lattner
420c69da57
do some serious surgery on CellSPU to get it back into a world
...
where it uses types consistently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98532 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 05:53:47 +00:00
Chris Lattner
3d00578c95
fix a few more ambiguous types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98531 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 05:53:30 +00:00
Chris Lattner
4de35024bc
add some missing types
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98530 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 05:35:37 +00:00
Jeffrey Yasskin
f28411f732
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98529 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 04:57:55 +00:00
Chris Lattner
0cec9c85ee
various cleanups from daniel
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98528 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 04:12:21 +00:00
Chris Lattner
77144e719f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98527 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 00:52:43 +00:00
Chris Lattner
a833f6b061
remove dead method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98526 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 00:00:42 +00:00
Chris Lattner
cdff5f7787
don't forget to close a FD on an error condition, found by
...
cppcheck, PR6617. Patch by Ettl Martin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98525 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 23:16:45 +00:00
Chris Lattner
82c3dc6347
tidy up and expound more on how half-float works.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98524 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 23:03:31 +00:00
Chris Lattner
149add0d28
tidy indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98523 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 22:44:11 +00:00
Chris Lattner
1c436d0b0b
no really, all 64-bit cpu's have cmov support. This should
...
fix the rest of the buildbot failures on non-x86 hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98522 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 22:39:35 +00:00
Chris Lattner
1db570df59
filecheckize a test and mark these wiht a cpu so it passes
...
on hosts without cmovs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98521 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 22:31:16 +00:00
Chris Lattner
1f84e32ada
all 64-bit cpus have cmov, this should fix CodeGen/X86/cmov.ll
...
(at least) on non-x86 builders.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98520 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 22:24:34 +00:00
Benjamin Kramer
1610d430be
Remove pointless forward declaration, MSVC got confused by this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98519 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 22:00:28 +00:00
Duncan Sands
d2c817eff1
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98514 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 21:08:40 +00:00
Evan Cheng
a8efe28a44
Rename SDDbgValue.h to SDNodeDbgValue.h for consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 19:56:39 +00:00
Chris Lattner
c4a3f23b92
fix ShrinkDemandedOps to not leave dead nodes around,
...
fixing PR6607
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 19:46:02 +00:00
Chris Lattner
25e0ab9ae5
rewrite ShrinkDemandedOps to be faster and indent less,
...
no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 19:43:04 +00:00
Evan Cheng
700c71d2e8
Fix jit encoding bugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98510 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 19:28:34 +00:00
Chris Lattner
552186dfd3
make -view-isel-dags print after the 'ShrinkDemandedOps' pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 19:27:55 +00:00
Chris Lattner
7147946afe
don't have i386-specific tests in CodeGen/Generic, PR6601.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98508 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:51:18 +00:00
Chris Lattner
da0688e08a
fix PR6605, X86ISD::CMP always returns i32 (EFLAGS), not
...
the operand type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98507 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:44:35 +00:00
Anton Korobeynikov
917463b80d
Fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98506 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:52 +00:00
Anton Korobeynikov
f02e73018f
Document fp16 intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98505 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:47 +00:00
Anton Korobeynikov
b9b5840d96
Feature test for half precision FP.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98504 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:43 +00:00
Anton Korobeynikov
631379e79c
Add substarget feature for FP16
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98503 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:38 +00:00
Anton Korobeynikov
bec3dd25c7
Add codegen support for FP16 on ARM
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98502 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:31 +00:00
Anton Korobeynikov
927411b7ce
Make default expansion for FP16 <-> FP32 nodes into libcalls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:24 +00:00
Anton Korobeynikov
be5b032e4b
Add DAG nodes to represent FP16 <-> FP32 intrinsics
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98500 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:15 +00:00
Anton Korobeynikov
feacf28cf8
Cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98499 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:08 +00:00
Anton Korobeynikov
675043b19d
The fp16 <-> fp32 intrinsics are pure, mark them so they can be CSE'd, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98498 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:42:04 +00:00
Anton Korobeynikov
676f968fec
Add intrinsics to represent fp16 <-> fp32 conversions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98497 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:41:50 +00:00
Chris Lattner
314a113184
add support for pentium class CPUs which do not have cmov,
...
PR4841. Patch by Craig Smith!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98496 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 18:31:44 +00:00
Chris Lattner
3b9d6216a4
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 17:53:23 +00:00
Chris Lattner
c441e97220
comment fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98494 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 17:10:52 +00:00
Chris Lattner
166604e6ce
shrink 4-byte branches to 1-byte branches when lowering from
...
MachineInstr -> MCInst. This is what the assembler backend wants,
it relaxes from smaller to larger things. This fixes rdar://7750815
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98493 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 17:04:18 +00:00
Bill Wendling
ead138bc62
Skip over debug info when trying to merge two return BBs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98491 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 10:40:55 +00:00
Bill Wendling
c69b4a5b8b
Make returns more consistent with others.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98490 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 10:40:28 +00:00
Chris Lattner
63d7836267
get MMI out of the label uniquing business, just go to MCContext
...
to get unique assembler temporary labels.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98489 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:36:50 +00:00
Chris Lattner
6b4205aa44
fix these two get the mcsymbol operand instead of imm operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98487 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:28:48 +00:00
Chris Lattner
1d72a76616
add a new CreateTempSymbol method, the use case for
...
CreateTempSymbol vs GetOrCreateTemporarySymbol are
completely different.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98486 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:23:30 +00:00