36927 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
Chris Lattner
fbf6891967 comment fix.
llvm-svn: 98494
2010-03-14 17:10:52 +00:00
Chris Lattner
239d05bad6 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

llvm-svn: 98493
2010-03-14 17:04:18 +00:00
Bill Wendling
0b0be33c46 Skip over debug info when trying to merge two return BBs.
llvm-svn: 98491
2010-03-14 10:40:55 +00:00
Bill Wendling
3320ee3d10 Make returns more consistent with others.
llvm-svn: 98490
2010-03-14 10:40:28 +00:00
Chris Lattner
9331acc6d7 get MMI out of the label uniquing business, just go to MCContext
to get unique assembler temporary labels.

llvm-svn: 98489
2010-03-14 08:36:50 +00:00
Chris Lattner
e939096a3b fix these two get the mcsymbol operand instead of imm operand.
llvm-svn: 98487
2010-03-14 08:28:48 +00:00
Chris Lattner
3eb55835b5 add a new CreateTempSymbol method, the use case for
CreateTempSymbol vs GetOrCreateTemporarySymbol are
completely different.

llvm-svn: 98486
2010-03-14 08:23:30 +00:00
Chris Lattner
5af59dfd1b don't use getDWLabel("label" anymore, always go through MMI.
llvm-svn: 98485
2010-03-14 08:18:13 +00:00
Chris Lattner
49130c09d0 remove now-dead code, all labels use MCSymbols.
llvm-svn: 98484
2010-03-14 08:17:53 +00:00
Chris Lattner
5ee7841af2 change SrcLineInfo to contain a label instead of a label ID.
llvm-svn: 98483
2010-03-14 08:15:55 +00:00
Chris Lattner
23ec7363b8 Now that DBG_LABEL is updated, we can finally make MachineMove
contain an MCSymbol instead of a label index.

llvm-svn: 98482
2010-03-14 08:12:40 +00:00
Chris Lattner
ba3b320aa3 change the DBG_LABEL MachineInstr to always be created
with an MCSymbol instead of an immediate.

llvm-svn: 98481
2010-03-14 07:56:48 +00:00
Chris Lattner
45aceed227 unbreak the build, grr symlinks.
llvm-svn: 98477
2010-03-14 07:36:49 +00:00
Chris Lattner
35d8b4e3e5 Change this code to allocate temporary labels from mccontext,
not from MMI.

llvm-svn: 98475
2010-03-14 07:29:45 +00:00
Chris Lattner
853b4f38df switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.
llvm-svn: 98474
2010-03-14 07:27:07 +00:00
Chris Lattner
ee71bdd77f Fix some EH failures on NNT I introduced in r98461
llvm-svn: 98471
2010-03-14 07:02:50 +00:00
Chris Lattner
961e202df4 fix a bug I introduced in r98459, causing some NNT failures.
llvm-svn: 98470
2010-03-14 06:50:56 +00:00
Evan Cheng
7d8c39bb1c Do not force indirect tailcall through fixed registers: eax, r11. Add support to allow loads to be folded to tail call instructions.
llvm-svn: 98465
2010-03-14 03:48:46 +00:00
Daniel Dunbar
03a9f8588c MC: Fix a crash on invalid, attempting to evaluate undefined symbols.
llvm-svn: 98464
2010-03-14 03:10:40 +00:00
Chris Lattner
5fef80c5aa change the LabelSDNode to be EHLabelSDNode and make it hold
an MCSymbol.  Make the EH_LABEL MachineInstr hold its label
with an MCSymbol instead of ID.  Fix a bug in MMI.cpp which
would return labels named "Label4" instead of "label4".

llvm-svn: 98463
2010-03-14 02:33:54 +00:00
Chris Lattner
de49dbc188 eliminate InvalidateLabel and LabelIDList from MMI and replace
them with a counter.

llvm-svn: 98462
2010-03-14 02:24:55 +00:00
Chris Lattner
f856c407af use Label->isDefined() instead of isLabelDeleted() now that we
consistently use MCSymbol and only call this predicate after
they should have been emitted.

llvm-svn: 98461
2010-03-14 02:20:58 +00:00
Chris Lattner
72761c4e3d fix some pointless layering violations.
llvm-svn: 98460
2010-03-14 01:56:06 +00:00
Chris Lattner
149cf816bb change EH related stuff (other than EH_LABEL) to use MCSymbol
instead of label ID's.  This cleans up and regularizes a bunch 
of code and makes way for future progress.

Unfortunately, this pointed out to me that JITDwarfEmitter.cpp
is largely copy and paste from DwarfException/MachineModuleInfo
and other places.  This is very sad and disturbing. :(

One major change here is that TidyLandingPads moved from being
called in DwarfException::BeginFunction to being called in
DwarfException::EndFunction.  There should not be any 
functionality change from doing this, but I'm not an EH expert.

llvm-svn: 98459
2010-03-14 01:41:15 +00:00