Chris Lattner
618d0ed4bc
fix an x86-64 encoding bug Daniel found.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98855 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 20:04:36 +00:00
Dan Gohman
40b037ef61
Simplify this code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98853 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 19:34:33 +00:00
Dan Gohman
9553188fcc
Define placement new wrappers for BumpPtrAllocator and
...
RecyclingAllocator to allow client code to be simpler, and
simplify several clients.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98847 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 18:49:47 +00:00
Bob Wilson
d1ec31dca5
Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to
...
always create a new jump table. The intention was to avoid merging jump
tables in SelectionDAGBuilder, and to wait for the branch folding pass to
merge tables. Unfortunately, the same getJumpTableIndex() method is also
used to merge tables in branch folding, so as a result of this change
branch tables are never merged. Worse, the branch folding code is expecting
getJumpTableIndex to always return the index of an existing table, but with
this change, it never does so. In at least some cases, e.g., pr6543, this
creates references to non-existent tables.
I've fixed the problem by adding a new createJumpTableIndex function, which
will always create a new table, and I've changed getJumpTableIndex to only
look at existing tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98845 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 18:42:41 +00:00
Chris Lattner
0f53cf2236
add a special relocation type for movq loads for object
...
files that produce special relocation types where the
linker changes movq's into lea's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98839 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 18:10:56 +00:00
Dan Gohman
1584390e55
Add explicit braces to avoid ambiguous ‘else’.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98838 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 18:07:13 +00:00
Chris Lattner
e10038e54e
callq is pcrelative
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98835 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 17:52:22 +00:00
Bob Wilson
35ee7d6e04
Check if function names start with "llvm." before trying to lookup them up as
...
intrinsics. The intrinsic lookup code assumes that this check has been done
and assumes the names are at least 6 characters long. Valgrind complained
about this. pr6638.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98831 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 16:52:15 +00:00
Devang Patel
1ac2429d1f
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98830 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 16:41:16 +00:00
Dan Gohman
c93b4cff89
Add the ability to "intern" FoldingSetNodeID data into a
...
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 16:16:38 +00:00
Benjamin Kramer
7c97ed7d07
Try to fix a valgrind error on 32 bit platforms: use %zu instead of %llu to format a size_t.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98819 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 12:18:36 +00:00
Evan Cheng
bdc652bab8
Turning off post-ra scheduling for x86. It isn't a consistent win.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 06:55:42 +00:00
Dan Gohman
f9e64729af
Reapply r98755 with a thinko which miscompiled gengtype fixed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98793 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 01:17:13 +00:00
Daniel Dunbar
9a1d20042f
MCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will need this for accessing to symbol modifiers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98791 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 00:59:10 +00:00
Daniel Dunbar
0682951b4f
MC/Darwin: Add a new target hook for whether the target uses "reliable" symbol differences, basically whether the assembler should attempt to understand atoms when using scattered symbols.
...
Also, avoid some virtual call overhead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98789 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 00:58:53 +00:00
Jakob Stoklund Olesen
ec1176a206
Revert "Change coalescer complexity from N^2 to N logN by changing one letter."
...
This reverts commit 98776. It broke the llvm-gcc boot strap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18 00:23:47 +00:00
Evan Cheng
f3caa525cc
X86 address mode matching code MatchAddressRecursively does some aggressive hack which require doing a RAUW. It may end up deleting some SDNode up stream. It should avoid referencing deleted nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98780 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:58:35 +00:00
Devang Patel
c3188ce0f1
Debug info intrinsic does not intefer during tail call optimization.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98778 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:52:37 +00:00
Johnny Chen
6c8648b4c9
Revert 98745 with respect to the addition of NEONFrm subformats for disassembly.
...
There is a better way coming up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98777 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:26:50 +00:00
Jakob Stoklund Olesen
0427b2ac45
Change coalescer complexity from N^2 to N logN by changing one letter.
...
Remove ugly hack that aborted the coalescer before using N^2 time.
This affects functions with very complicated live intervals for physical
registers, i.e. functions with thousands of function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98776 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:21:58 +00:00
Johnny Chen
b675e255d0
Fixed a bug in the IT mask printing where T means the cond bit in the mask
...
matches that of Firstcond[0] and E means otherwise. The Firstcond[0] is also
tagged in the Mask to facilitate Asm printing. The disassembler also depends
on this arrangement. This is similar to what's described in A2.5.2 ITSTATE.
Ran:
utils/lit/lit.py test/CodeGen/ARM test/CodeGen/Thumb test/CodeGen/Thumb2
successfully.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98775 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:14:23 +00:00
Johnny Chen
77bdc48eb6
Refines 98745 so that it only contains the patch related to the output of the
...
addressing modes to omit the '+' from the assembler syntax #+/-<imm> or +/-<Rm>.
This patch removes the impl of printT2AddrModeImm8s4OffsetOperand() from
ARMAsmPrinter.cpp. It is used by disassembler as of now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 23:01:59 +00:00
Bob Wilson
87949d4d5a
Clean up whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 21:16:45 +00:00
Bob Wilson
89ef7b797a
Increase format field from 5 to 6 bits. ARMII::FormMask was increased to 0x3f
...
in svn r74988 but the format field was never widened.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 21:13:43 +00:00
Benjamin Kramer
e5636a3221
Initialize Size member to appease valgrind.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98763 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 19:55:31 +00:00
Dan Gohman
ebf78f18df
Revert 98755, which may be causing trouble.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98762 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 19:54:53 +00:00
Dan Gohman
0afc29c3e6
Change SCEVNAryExpr's operand array from a SmallVector to a plain
...
pointer and length, and allocate the arrays in ScalarEvolution's
BumpPtrAllocator, so that they get released when their owning
SCEV gets released. SCEVs are immutable, so they don't need to worry
about operand array resizing. This fixes a memory leak reported
in PR6637.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98755 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 18:51:01 +00:00
Johnny Chen
e6f83878bc
98745 contains something unrelated to the patch.
...
Remove it from ARMAddressingModes.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98751 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 18:32:39 +00:00
Johnny Chen
9e08876a2a
Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
...
instructions to help disassembly.
We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60.
And modified test cases to not expect '+' in +reg or #+num. For example,
; CHECK: ldr.w r9, [r7, #28 ]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98745 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 17:52:21 +00:00
Devang Patel
5b33f3148c
Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98743 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 17:29:55 +00:00
Jeffrey Yasskin
b7ccf75de5
Fix a false-positive memory leak in code using RemoveFileOnSignal(). Because
...
libstdc++'s std::string class points to the interior of an allocation, valgrind
reports strings still alive at program termination as possible leaks. I didn't
use a ManagedStatic for this because System can't depend on Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98716 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 07:08:12 +00:00
Chris Lattner
77e7694026
fix GetOrCreateTemporarySymbol to require a name, clients
...
should use CreateTempSymbol() if they don't care about the
name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98712 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-17 05:41:18 +00:00
Bob Wilson
a1bdfc3c7f
Remove a check that can no longer be true, after r84803.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98694 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 23:40:32 +00:00
Bob Wilson
a43e6bf690
Revert 98683. It is breaking something in the disassembler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98692 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 23:01:13 +00:00
Evan Cheng
4507f089d4
Fix liveintervals handling of dbg_value instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98686 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:51:27 +00:00
Bob Wilson
bb6c77e6b9
Remove redundant writeback flag from ARM address mode 6. Also remove the
...
optional register update argument, which is currently unused -- when we add
support for that, it can just be a separate operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98683 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:44:40 +00:00
Chris Lattner
93b122d3c4
reapply r98656 unmodified, which exposed the asmprinter not
...
handling constant unions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98680 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:25:55 +00:00
Johnny Chen
2b0272e43d
Disambiguate the *_UPD and * variants by specifying the writeback flag as 1.
...
This is for the disassembly work.
There are cases where this is not possible, for example, A8.6.53 LDM Encoding T1.
In such case, we'll use an adhoc approach to deduce the Opcode programmatically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98679 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:25:05 +00:00
Chris Lattner
94c484d3b8
add asmprinter suport for unions, fixing Feature/unions.ll to actually
...
be doing something useful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98677 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:21:35 +00:00
Devang Patel
cbe1e31732
Ignore debug value instructions while analyzing BB for tail duplication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98675 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 21:02:07 +00:00
Benjamin Kramer
2d7186ae6d
str[r]chr returns its pointer argument so we cannot mark it as nocapture. Thanks to Duncan for spotting my mistake.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98671 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 20:33:15 +00:00
Benjamin Kramer
4446b04052
Mark str[r]chr readonly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98663 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 19:36:43 +00:00
Daniel Dunbar
b85c7100c5
Revert r98656, its breaking all over the place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98662 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 19:35:34 +00:00
Chris Lattner
8b3b34f410
improve support for uniontype and ConstantUnion, patch by Tim Northover!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 19:15:03 +00:00
Bob Wilson
2d357f6b44
Remove redundant writeback flag in ARM addressing mode 5.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 18:38:09 +00:00
Bob Wilson
ab3460519e
Remove the writeback flag from ARM's address mode 4. Now that we have separate
...
instructions for ld/st with writeback, the flag is completely redundant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 17:46:45 +00:00
Bob Wilson
9e54b6ab3f
Fix unused variable warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98642 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 17:44:45 +00:00
Bob Wilson
49d9dc4dd2
--- Reverse-merging r98637 into '.':
...
U test/CodeGen/ARM/tls2.ll
U test/CodeGen/ARM/arm-negative-stride.ll
U test/CodeGen/ARM/2009-10-30.ll
U test/CodeGen/ARM/globals.ll
U test/CodeGen/ARM/str_pre-2.ll
U test/CodeGen/ARM/ldrd.ll
U test/CodeGen/ARM/2009-10-27-double-align.ll
U test/CodeGen/Thumb2/thumb2-strb.ll
U test/CodeGen/Thumb2/ldr-str-imm12.ll
U test/CodeGen/Thumb2/thumb2-strh.ll
U test/CodeGen/Thumb2/thumb2-ldr.ll
U test/CodeGen/Thumb2/thumb2-str_pre.ll
U test/CodeGen/Thumb2/thumb2-str.ll
U test/CodeGen/Thumb2/thumb2-ldrh.ll
U utils/TableGen/TableGen.cpp
U utils/TableGen/DisassemblerEmitter.cpp
D utils/TableGen/RISCDisassemblerEmitter.h
D utils/TableGen/RISCDisassemblerEmitter.cpp
U Makefile.rules
U lib/Target/ARM/ARMInstrNEON.td
U lib/Target/ARM/Makefile
U lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
D lib/Target/ARM/Disassembler
U lib/Target/ARM/ARMInstrFormats.td
U lib/Target/ARM/ARMAddressingModes.h
U lib/Target/ARM/Thumb2ITBlockPass.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98640 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 16:59:47 +00:00
Johnny Chen
d30a98e43a
Initial ARM/Thumb disassembler check-in. It consists of a tablgen backend
...
(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.
Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
instructions to help disassembly.
We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60.
And modified test cases to not expect '+' in +reg or #+num. For example,
; CHECK: ldr.w r9, [r7, #28 ]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98637 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 16:36:54 +00:00
Bob Wilson
ea7f22c31d
Stop using the old pre-UAL syntax for LDM/STM instruction suffixes.
...
This does not move entirely to UAL syntax, since the default "increment after"
suffix is empty but we still use "IA" for that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98635 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 16:19:07 +00:00
Chris Lattner
4d82068167
fix the same bug on the x86-64 side of the fence.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 06:39:08 +00:00
Chris Lattner
840e6371ea
fix the encoding of TAILJMPd. This fixes Benchmarks/Olden/bisort
...
with the integrated assembler!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98615 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 06:30:18 +00:00
Jeffrey Yasskin
6efed73eb5
Avoid a memory leak in JITDebugRegisterer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98612 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 05:54:54 +00:00
Bill Wendling
b0d27662ea
Use getFirstTerminator().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98604 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 02:01:51 +00:00
Bill Wendling
8fe347a8b5
When checking if something's killed, don't rely simply on whether it's marked as
...
"used outside of the block". If the block ends in a return, then it won't be
used outside of it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98599 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 01:05:35 +00:00
Bob Wilson
8d95e0be13
Wrap a long line and add some parens to be consistent.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98596 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 00:31:15 +00:00
Chris Lattner
999aee24c7
Fix the third (and last known) case of code update problems due
...
to LLVM IR changes with addr label weirdness. In the testcase, we
generate references to the two bb's when codegen'ing the first
function:
_test1: ## @test1
leaq Ltmp0(%rip), %rax
..
leaq Ltmp1(%rip), %rax
Then continue to codegen the second function where the blocks
get merged. We're now smart enough to emit both labels, producing
this code:
_test_fun: ## @test_fun
## BB#0: ## %entry
Ltmp1: ## Block address taken
Ltmp0:
## BB#1: ## %ret
movl $-1, %eax
ret
Rejoice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-16 00:29:39 +00:00
Daniel Dunbar
4e815f8a8c
MC: Allow modifiers in MCSymbolRefExpr, and eliminate X86MCTargetExpr.
...
- Although it would be nice to allow this decoupling, the assembler needs to be able to reason about MCSymbolRefExprs in too many places to make this viable. We can use a target specific encoding of the variant if this becomes an issue.
- This patch also extends llvm-mc to support parsing of the modifiers, as opposed to lumping them in with the symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98592 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 23:51:06 +00:00
Dan Gohman
1bbf72b069
Recognize code for doing vector gather/scatter index calculations with
...
32-bit indices. Instead of shuffling each element out of the index vector,
when all indices are needed, just store the input vector to the stack and
load the elements out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98588 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 23:23:03 +00:00
Bob Wilson
33cc5cb983
Translate "cc" clobber in ARM inline assembly to ARM::CCRRegisterClass.
...
Radar 7459078.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98586 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 23:09:18 +00:00
Devang Patel
7b9f6b1b21
Skip debug info intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98584 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 22:23:03 +00:00
Daniel Dunbar
d6e59084d0
MC/Mach-O/x86_64: Temporary labels in cstring sections require symbols (and external relocations, but we don't have x86_64 relocations yet).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98583 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 21:56:50 +00:00
Daniel Dunbar
99d22adcad
MC/Mach-O: Add MCSectionMachO::getType()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98582 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 21:56:38 +00:00
Devang Patel
689fac0226
Skip debug info intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98581 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 21:25:29 +00:00
Bill Wendling
505ad8bed3
Now that the default for Darwin platforms is to place the LSDA into the TEXT
...
section, remove the target-specific code that performs this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98580 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 21:09:38 +00:00
Chris Lattner
9cc0da9c29
Implement support for the case when a reference to a addr-of-bb
...
label is generated, but then the block is deleted. Since the
value is undefined, we just emit the label right after the entry
label of the function. It might matter that the label is in the
same section as the function was afterall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98579 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 20:39:00 +00:00
Chris Lattner
034721eb6a
use Mang->getSymbol()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98578 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 20:37:57 +00:00
Chris Lattner
4c6741f707
use Mang->getSymbol() more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98577 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 20:37:38 +00:00
Douglas Gregor
1bb30b6f75
Extend MemoryBuffer::getFile() to take an optional "stat" structure
...
pointer. If given, the structure will be set with the stat information from
the file actually read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98575 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 20:32:14 +00:00
Devang Patel
001903485f
Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes.
...
This is a work in progress. Patch by Dale Johannesen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98568 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 19:15:44 +00:00
Chris Lattner
0220ba7995
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 19:09:43 +00:00
Devang Patel
ca70495797
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98565 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 19:05:46 +00:00
Bill Wendling
757e75b033
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98564 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 19:04:37 +00:00
Evan Cheng
a375d47137
Avoid sibcall optimization if either caller or callee is using sret semantics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98561 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 18:54:48 +00:00
Chris Lattner
88698f5dbc
revert r98550, it isn't necessary or sufficient.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98558 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 18:42:01 +00:00
Devang Patel
90a48adf9c
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions.
...
This is a work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 18:33:46 +00:00
Chris Lattner
fc6e69bcb2
don't eliminate address-taken blocks here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98550 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-15 16:37:42 +00:00
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
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
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
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
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
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
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
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
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
Chris Lattner
8d9aaba84e
don't use getDWLabel("label" anymore, always go through MMI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98485 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:18:13 +00:00
Chris Lattner
0397ada8ae
remove now-dead code, all labels use MCSymbols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98484 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:17:53 +00:00
Chris Lattner
25b68c6770
change SrcLineInfo to contain a label instead of a label ID.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98483 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:15:55 +00:00
Chris Lattner
2e9919a5e5
Now that DBG_LABEL is updated, we can finally make MachineMove
...
contain an MCSymbol instead of a label index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98482 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 08:12:40 +00:00
Chris Lattner
6ffcccab51
change the DBG_LABEL MachineInstr to always be created
...
with an MCSymbol instead of an immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 07:56:48 +00:00
Chris Lattner
9a38e67590
unbreak the build, grr symlinks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98477 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 07:36:49 +00:00
Chris Lattner
90f172aa80
Change this code to allocate temporary labels from mccontext,
...
not from MMI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98475 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 07:29:45 +00:00
Chris Lattner
aba9bcb9b6
switch GC_LABEL to use an MCSymbol operand instead of a label ID operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 07:27:07 +00:00
Chris Lattner
f14645cc64
Fix some EH failures on NNT I introduced in r98461
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 07:02:50 +00:00
Chris Lattner
21f9c8de53
fix a bug I introduced in r98459, causing some NNT failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 06:50:56 +00:00
Evan Cheng
f48ef03655
Do not force indirect tailcall through fixed registers: eax, r11. Add support to allow loads to be folded to tail call instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98465 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 03:48:46 +00:00
Daniel Dunbar
d3da36286f
MC: Fix a crash on invalid, attempting to evaluate undefined symbols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 03:10:40 +00:00
Chris Lattner
7561d48095
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".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 02:33:54 +00:00
Chris Lattner
18589de9b1
eliminate InvalidateLabel and LabelIDList from MMI and replace
...
them with a counter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 02:24:55 +00:00
Chris Lattner
b91306053d
use Label->isDefined() instead of isLabelDeleted() now that we
...
consistently use MCSymbol and only call this predicate after
they should have been emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 02:20:58 +00:00
Chris Lattner
53d00241fb
fix some pointless layering violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98460 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 01:56:06 +00:00
Chris Lattner
1611273351
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-14 01:41:15 +00:00
Daniel Dunbar
bf2d4c034d
X86_64: Fix encoding for the rest of the 64i32 instructions too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98458 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 22:57:53 +00:00
Daniel Dunbar
859c9dc867
X86: Fix ADD64i32 encoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98457 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 22:49:39 +00:00
Daniel Dunbar
5691e74f97
MC/X86_64: Symbol support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98456 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 22:49:35 +00:00
Daniel Dunbar
ee0d89245e
MC/Mach-O: Initial x86_64 support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98454 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 22:10:17 +00:00
Chris Lattner
1b2eb0e8a6
eliminate the now-unneeded context argument of MBB::getSymbol()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 21:04:28 +00:00
Chris Lattner
11d53c129f
rearrange MCContext ownership. Before LLVMTargetMachine created it
...
and passing off ownership to AsmPrinter. Now MachineModuleInfo
creates it and owns it by value. This allows us to use MCSymbols
more consistently throughout the rest of the code generator, and
simplifies a bit of code. This also allows MachineFunction to
keep an MCContext reference handy, and cleans up the TargetRegistry
interfaces for AsmPrinters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 20:55:24 +00:00
Jeffrey Yasskin
eca52b609c
Allow types that have been forwarded to to be freed.
...
Tested: make check-lit && valgrind --dsymutil=yes --leak-check=full unittests/ExecutionEngine/JIT/Debug/JITTests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98447 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 20:09:55 +00:00
Daniel Dunbar
96e2cec9c7
MC/X86_64: Fix matching of leaq.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98444 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 19:31:44 +00:00
Daniel Dunbar
989ac72981
MC/X86_64: Fix matching of callq.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98443 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 19:31:38 +00:00
Chris Lattner
3a151be8d5
add a hack to allow parsing negative minint. rdar://7751341
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98442 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 19:25:13 +00:00
Chris Lattner
72aaa3c798
add support for MCSymbols as operands to MachineInstrs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 08:14:18 +00:00
Chris Lattner
5e6cbe0eff
simplify EmitFrameMoves to take BaseLabel in as a symbol
...
instead of as a stem+idx pair, simplify the "is a new
location" check to use symbol comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98432 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 08:05:25 +00:00
Chris Lattner
464bee191f
simplify some overly general code. The stack always grows down on x86.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98431 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 08:04:35 +00:00
Benjamin Kramer
e17245dbe9
Fix another warning. There is a functionality change but I believe it's correct.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98430 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 07:50:22 +00:00
Chris Lattner
fb65807c34
factor some labels, simplify some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98429 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 07:40:56 +00:00
Bob Wilson
bffb5b39be
Attempt to appease the arm-linux buildbot by fixing the JIT encodings for new
...
base register updating load/store-multiple instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98427 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 07:34:35 +00:00
Chris Lattner
206d61e62f
various cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98426 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 07:26:18 +00:00
Daniel Dunbar
da3e9f760c
MC/Mach-O: PCrel relocations weren't using the right base address, they are
...
relative to the fragment address, not its offset. This was masked by the text
section normally being at address 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98420 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 02:38:00 +00:00
Daniel Dunbar
5e6a7a248b
llvm-mc: Support -n, useful for comparing -integrated-as output since the
...
compiler may not lead with the text section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 02:20:57 +00:00
Evan Cheng
0af20d847a
Fix a typo in ValueTracking that's causing instcombine to delete needed shift instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98416 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 02:20:29 +00:00
Chris Lattner
bc733f54c0
reimplement the string pool used for inlined function
...
entries to not thrash std::strings and MCSymbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98415 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 02:17:42 +00:00
Chris Lattner
1bd1e6db1d
switch to the text section at the start of the .s file for darwin/x86
...
targets. This is a temporary hack for the .o file writer that Daniel
wants :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98413 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 02:10:00 +00:00
Jeffrey Yasskin
6f555ca2cd
Delete MDNodes when LLVMContext is destroyed. Previous attempts: r97918, r97788.
...
Tested: clang debug bootstrap, llvm-gcc bootstrap, `make check-lit`
after configuring with --with-llvmgccdir (and this did run the
FrontendC* tests this time)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98410 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 01:26:15 +00:00
Bob Wilson
815baebe1c
Change ARM ld/st multiple instructions to have variant instructions for
...
writebacks to the address register. This gets rid of the hack that the
first register on the list was the magic writeback register operand. There
was an implicit constraint that if that operand was not reg0 it had to match
the base register operand. The post-RA scheduler's antidependency breaker
did not understand that constraint and sometimes changed one without the
other. This also fixes Radar 7495976 and should help the verifier work
better for ARM code.
There are now new ld/st instructions explicit writeback operands and explicit
constraints that tie those registers together.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98409 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 01:08:20 +00:00
Devang Patel
afc33fa6d5
Do not ignore arg_size() impact while counting bb instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98408 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 01:05:02 +00:00
Daniel Dunbar
d5e7705a05
MC/X86: Add temporary hack to match shrl $1,%eax correctly, to support testing
...
other functionality on 403.gcc compiled at -O0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98405 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 00:47:29 +00:00
Devang Patel
f96769bed2
Remove extra parameter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98403 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 00:45:31 +00:00
Bob Wilson
3943ac38c9
Combine the code to build VLDM and VSTM instructions, since they are
...
mostly the same.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98402 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 00:43:32 +00:00
Devang Patel
cbd056074c
Do not overestimate code size reduction in presense of debug info.
...
Use CodeMetrics.analyzeBasicBlock() to estimate BB size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98401 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-13 00:10:20 +00:00
Bob Wilson
e4193b20fd
Tidy up. No functional changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98398 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 22:50:09 +00:00
Daniel Dunbar
f08fde41f3
MC/Mach-O: Implement initial support for relaxation.
...
- The implementation is currently very brain dead and inefficient, but I have a
clear plan on how to fix it.
- The good news is, it works and correctly assembles 403.gcc (when built with
Clang, at '-Os', '-Os -g', and '-O3'). Even better, at '-Os' and '-Os -g',
the resulting binary is exactly equivalent to that when built with the system
assembler. So it probably works! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98396 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 22:07:14 +00:00
Bob Wilson
5027064c69
Remove obsolete comments. VLDM is implemented in ARMInstrVFP.td.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98395 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 22:00:08 +00:00
Jeffrey Yasskin
150ae11976
Fix LLVM build when the user specifies CPPFLAGS on the make command line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98394 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:42:14 +00:00
Chris Lattner
528a126d32
remove gone method, grr symlinks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:30:49 +00:00
Chris Lattner
70501b72cf
remove special case code that isn't needed anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98391 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:21:19 +00:00
Chris Lattner
d62f1b4168
inline GetGlobalValueSymbol into the rest its callers and
...
remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:19:23 +00:00
Chris Lattner
deb0cba1ba
inline the now-trivial implementation of GetGlobalValueSymbol into
...
some of its callers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:09:07 +00:00
Chris Lattner
b6fc4a5650
eliminate the X86 version of GetGlobalValueSymbol, allowing
...
it to be non-virtual and soon disappear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98387 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:06:41 +00:00
Chris Lattner
08d04f591f
prune #includes, this file should be removed pending hte cygwin stub issue being resolved.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98386 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:04:31 +00:00
Chris Lattner
8a29fa6e02
move fastcall/stdcall mangling up into Mangler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98384 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:03:47 +00:00
Daniel Dunbar
df3c8f2969
MC: Factor out MCAssembler::EvaluateFixup, and simplify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98381 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:00:49 +00:00
Daniel Dunbar
a0e36d55c4
MC: Constify MCAsmLayout argument to MCExpr::EvaluteAs...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98380 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:00:45 +00:00
Daniel Dunbar
8315a357e4
MC: Add MCAssembler::addFixup, which enforces that fixups are added in order.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98379 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 21:00:38 +00:00
Chris Lattner
b87c305fa7
give Mangler access to TargetData.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 20:47:28 +00:00
Chris Lattner
3f185a72cd
make DecorateCygMingName a static method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98377 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 20:43:52 +00:00
Benjamin Kramer
a30b181c20
Add a virtual destructor and give vtable a home.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 20:41:29 +00:00
Chris Lattner
9c59268197
minor tidying, only do work if a function is
...
actually X86_StdCall or X86_FastCall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98374 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:48:03 +00:00
Chris Lattner
c9747c05d1
eliminate the string form of DecorateCygMingName
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98373 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:42:40 +00:00
Chris Lattner
355670bf0f
remove the FnArgWords cache to make way for future changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:31:03 +00:00
Bill Wendling
ec041eba38
Add a beta-test for placing the LSDA into the TEXT section on X86.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98370 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:20:40 +00:00
Devang Patel
b45fb90b20
Fix llc crash on invalid input.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98369 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:18:30 +00:00
Chris Lattner
1c95488880
Remove some dead code. This method only gets called on
...
definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98368 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:14:18 +00:00
Chris Lattner
2341f6ccf8
use Mang->getSymbol instead of duplicating the logic, reduce indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98367 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 19:04:14 +00:00
Chris Lattner
73ff564d65
finally give Mangler a getSymbol method, which returns an MCSymbol
...
for a global instead of messing around with string buffers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:55:20 +00:00
Chris Lattner
0d941c15c0
remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:49:32 +00:00
Chris Lattner
b0f129a5d9
simplify code to use OutContext.GetOrCreateTemporarySymbol with
...
no arguments instead of having to come up with a unique name.
This also makes the code less fragile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98364 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:47:50 +00:00
Chris Lattner
5ef31a039d
make the mangler take an MCContext instead of an MAI.
...
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:44:54 +00:00
Chris Lattner
fdab14b105
remove MAI argument from createAsmStreamer since it
...
can get it from the context now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:28:53 +00:00
Chris Lattner
20e3280f3f
fix a bug emitting .secrel32 that I introduced, PR6587, patch
...
by A.Mazur!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98360 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 18:10:35 +00:00
Duncan Sands
890edda7c2
When constant folding GEP of GEP, do not crash if an index of
...
the inner GEP is not a ConstantInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98359 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 17:55:20 +00:00
Jeffrey Yasskin
5c213dc78c
Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of
...
several fields to make it easier to figure out where bugs might be creeping in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 17:45:06 +00:00
Duncan Sands
0ac5d2d7ff
Revert turning copysignl into a COPYSIGN node for the moment:
...
ppc calls copysignl with a 128 bit ppc long double, resulting
in a node that the type legalizer doesn't know how to expand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98357 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 17:41:34 +00:00
Kovarththanan Rajaratnam
16ceb3aaf7
Remove superfluous NULL assignment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98350 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 14:17:24 +00:00
Benjamin Kramer
018cbd5ddf
Use StringRef::substr instead of std::string::substr to avoid using a free'd
...
string temporary. This should fix PR6590.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98349 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 13:54:59 +00:00
Duncan Sands
bb2f0c541c
Now that it's supported, turn copysignl into a COPYSIGN node.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98348 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 12:13:59 +00:00
Duncan Sands
5d54b4112d
Fix PR6522: implement copysign expansion for x86 long double
...
(it seems that FreeBSD doesn't have copysignl). Done by
removing a bunch of assumptions from the code. This may also
help with sparc 128 bit floats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98346 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 11:45:06 +00:00
Benjamin Kramer
0b6cb50738
Factor checked library call optimization into a common helper class and use it
...
to unify the almost identical code in CodeGenPrepare and InstCombineCalls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 09:27:41 +00:00
Chris Lattner
b3e87b2262
fix PR6577, a bug in sdbuilder lowering select instructions
...
whose true value was not Val#0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98336 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 07:15:36 +00:00
Bill Wendling
53351a175d
The same situation that effected ARM effects PPC with regards to placing the
...
LSDA into the TEXT section. We need to generate non-lazy pointers to it on
Mach-O. However, the object the NLP points to may be local to the translation
unit. If so, then the NLP needs to have the value of that object specified
instead of "0", which the linker interprets as "external".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98325 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 02:00:43 +00:00
Chris Lattner
f789d26f81
make TargetLoweringObjectFile::getExprForDwarfReference
...
just make unnamed temp symbols instead of having to come
up with its own names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98324 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-12 01:56:43 +00:00
Devang Patel
1b596e399b
There is no need to create specification DIE for definitions at DIFile level.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98302 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 23:44:52 +00:00
Bill Wendling
08d726c912
MC-ize PPC's asm printing of stubs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98300 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 23:39:44 +00:00
Nate Begeman
75d5fe9213
Whoops this already existed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98297 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 23:21:19 +00:00
Nate Begeman
47a53a6e4c
Add a handful of additional useful pass manager things to the C API
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 23:06:07 +00:00
Jakob Stoklund Olesen
56698803d9
Extract methods from LocalRewriter::RewriteMBB bringing it down to 666 lines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 23:04:34 +00:00
Chris Lattner
1a5c28f471
enhance MCContext::GetOrCreateTemporarySymbol() to create a new symbol
...
with an arbitrary unique name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 22:56:10 +00:00
Chris Lattner
c18409aed8
change MCContext to always have an MCAsmInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 22:53:35 +00:00
Chris Lattner
42263e2e40
fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference
...
where we used ot create an MCSymbol for ".". Now emit an assembler
temporary label and reference it instead of "." textually.
rdar://7739457
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 21:55:20 +00:00
Dan Gohman
a257095ebb
Remove getWidenVectorType, which is no longer used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98289 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 21:39:57 +00:00
Chris Lattner
19a994766f
empty symbols aren't possible, the mcsymbol ctor aborts on them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98288 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 21:38:58 +00:00
Johnny Chen
c0b5dce3fa
Set the (Format)F filed of t2Int_MemBarrierV7 & t2Int_SyncBarrierV7 to ThumbFrm,
...
instead of Pseudo, which helps Thumb decoder to recognize them as Thumb instr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 21:02:50 +00:00
Benjamin Kramer
7fa30b8e5d
stpcpy is so similar to strcpy, it doesn't deserve a complete copy of the __strcpy_chk -> strcpy code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98284 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 20:45:13 +00:00
Bill Wendling
c6678b0014
revert r98270.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98281 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 19:50:31 +00:00
Chris Lattner
3192d14076
rename getSymbolForDwarf* to getExprForDwarf* since it returns
...
an MCExpr and not an MCSymbol. Change it to take an MCStreamer,
which is currently unused.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 19:41:58 +00:00
Evan Cheng
af1871fa6d
In case of tail call size of Ins and InVals may not match.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98277 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 19:38:18 +00:00
Eric Christopher
19888ca8b4
Lower stpcpy_chk when possible.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 19:24:34 +00:00
Evan Cheng
55282267e1
Bad bad bug. x86 force indirect tail call address into eax when it's meant to force it into a call preserved register instead. Change it to ecx for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98270 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 18:49:14 +00:00
Richard Osborne
c6bc9a69d4
Remove dead code. (S|U)MUL_LO is now lowered to LMUL or MACC(S|U)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98269 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 18:38:59 +00:00
Jeffrey Yasskin
d0f393d46f
Avoid leaking CompileUnits in DwarfDebug.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98268 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 18:29:55 +00:00
Daniel Dunbar
8f0448cabc
MC/Mach-O: Add MCSymbolData::getAddress() utility.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98266 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 18:22:51 +00:00
Eric Christopher
b0722af798
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98260 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 17:45:38 +00:00
Richard Osborne
79a73fbeb3
Add dag combine to simplify lmul(x, 0, a, b)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98258 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 16:26:35 +00:00
Richard Osborne
f766ce5580
Switch XCore over to using inline jump table entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98256 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 14:58:56 +00:00
Richard Osborne
95da605e15
Add a new jump table encoding to indicate jump tables entries
...
are inside the function by the target at the point of use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 14:58:16 +00:00
Evan Cheng
826cbac2a0
The check for coalescing a virtual register to a physical register, e.g.
...
cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check
for overlaps of vr's live interval with the super registers of the
physical register (ECX in this case) and let JoinIntervals() handle checking
the coalescing feasibility against the physical register (cl in this case).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 08:20:21 +00:00
Ted Kremenek
41b39e9908
Update CMake build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98250 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 07:51:23 +00:00
Eric Christopher
f27805b5c5
Have fast-isel understand llvm.objectsize. Update testcase for slightly
...
different codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98244 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 06:20:22 +00:00
Jeffrey Yasskin
6220754525
Make clang bootstrap happier on OSX 10.5 by reducing the number of headers
...
included when using global symbols to ask the linker for the addresses of
various functions. One of the symbols was actually getting declared by a
header included in DynamicLibrary.cpp, which conflicted with the "extern void*"
declaration in SearchForAddressOfSpecialSymbol().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98243 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 06:14:32 +00:00
Daniel Dunbar
979ba5b3c7
MC/Mach-O: Implement "absolutizing" semantics of .set, by evaluating the assembly time value of variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98241 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 05:53:37 +00:00
Daniel Dunbar
18ff2cced7
MC/Mach-O: Start passing in the basic MCAsmLayout object.
...
- Also, drop the current location part of AsmLayout, I think I prefer to implement this via explicit symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98240 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 05:53:33 +00:00
Eric Christopher
040056fd11
Do some final lowering in CodeGenPrepare of _chk calls similar to
...
that in InstCombineCalls.
More call lowering needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 02:41:03 +00:00
Daniel Dunbar
f82f4490b1
MC: Sketch initial MCAsmLayout class, which encapsulates the current layout of an assembly file. The MCAsmLayout is also available for use by MCExpr::EvaluateAs{Absolute,Relocatable}, to allow target specific hooks and "absolutizing" of symbols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98227 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 02:28:59 +00:00
Daniel Dunbar
0193c0994b
Remove dead include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 02:28:48 +00:00
Dale Johannesen
e68ea060c7
Fix debug_value handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98224 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 02:10:24 +00:00
Daniel Dunbar
1f3e445184
MC: Provide MCAssembler with a TargetAsmBackend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:34:27 +00:00
Daniel Dunbar
23ac7c78e4
MC: Sketch some TargetAsmBackend hooks we are going to need.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98221 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:34:21 +00:00
Daniel Dunbar
6c27f5e574
MC: Provide the target triple to AsmBackend constructors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:34:16 +00:00
Eric Christopher
bd97376200
Add strncpy libcall creator. Use it when it should be used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98219 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:25:07 +00:00
Bill Wendling
52a50e5d0e
When outputing a non-lazy pointer for a stub, we may need to fill in the value
...
for the NLP because the object it's pointing to may be internal to the file.
This seems counter-intuitive, but bear with me. When we place the LSDA into the
TEXT section, the type info pointers need to be indirect and pc-rel. We
accomplish this by using NLPs. However, sometimes the types are local to the
file. GCC gets around this by not using a NLP in this case, but a "regular"
indirection like this:
GCC_except_tbl:
.long Lfoo-.
__ZTIA: @ This is local
...
Lfoo:
.long __ZTIA
LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to
use them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:18:13 +00:00
Johnny Chen
ae1757b452
Added Thumb2 LDRD/STRD pre/post variants for disassembly only.
...
Plus fixed the encoding of t2LDRDpci such that P = 1 and W = 0 (offset mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98217 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 01:13:36 +00:00
Bob Wilson
5265a12f53
Fix ARM buildbot breakage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 00:46:22 +00:00
Chris Lattner
2968943463
add support, testcases, and dox for the new GHC calling
...
convention. Patch by David Terei!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98212 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 00:22:57 +00:00
Bob Wilson
4d6113ee06
Lower small memcpys to load/stores on Thumb2.
...
Radar 7686922.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98210 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 00:20:49 +00:00
Jakob Stoklund Olesen
2cb4202f07
VirtRegRewriter spring cleaning. No functional change.
...
Move methods out of line and M-x whitespace-cleanup.
Promote common method arguments to member variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98207 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 00:11:33 +00:00
Chris Lattner
bcc5cb4061
Work around a bug in the openbsd assembler on i386,
...
which doesn't support .quad correctly because it is
"really really old". PR6528.
Yet another reason the mc assembler should take over ;-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-11 00:06:19 +00:00
Chris Lattner
f2f64e9063
fix PR6533 by updating the br(xor) code to remember the case
...
when it looked past a trunc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98203 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 23:46:44 +00:00
Dale Johannesen
e3b8533e71
Cosmetic: lengthen names and improve comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98202 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 23:37:24 +00:00
Bob Wilson
fbacc888ee
Fix an obvious typo in an assert.
...
Patch by Sean Callanan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 22:38:45 +00:00
Bill Wendling
cebae36f57
Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that
...
indicates that an MCSymbol is external or not. (It's true if it's external.)
This will be used to specify the correct information to add to non-lazy
pointers. That will be explained further when this bit is used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 22:34:10 +00:00
Dale Johannesen
bfdf7f3852
Progress towards shepherding debug info through SelectionDAG.
...
No functional effect yet. This is still evolving and should
not be viewed as final.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 22:13:47 +00:00
Chris Lattner
6663670359
move PR6576 here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98194 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 21:42:42 +00:00
Dan Gohman
8f78e3c87d
Fix another bitwidth calculation to handle vector types; based on a
...
patch by Micah Villmow for PR6572.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98188 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 21:04:53 +00:00
Daniel Dunbar
2101d9c4af
MC/Mach-O: Use the MCAssembler symbol map instead of reconstructing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98187 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 20:58:31 +00:00
Daniel Dunbar
46836a783a
MC: Move the backend section and symbol data maps to MCAssembler.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98186 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 20:58:29 +00:00
Jim Grosbach
f49be7c96f
Make sure the LR gets pushed in functions that use vaargs. This fixes
...
400.perlbench for the nightly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 20:01:30 +00:00
Jim Grosbach
004453e85e
comment why we use custom epilogue for t1 functions using vaargs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98182 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 19:59:47 +00:00
Dale Johannesen
2cd9ffef6e
Fix another place where DEBUG_VALUE affected codegen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98181 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 19:57:56 +00:00
Dan Gohman
bbf81d8811
Add a DominatorTree argument to isLCSSA so that it doesn't have to
...
compute a set of reachable blocks for itself each time it is called, which
is fairly frequently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98179 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 19:38:49 +00:00
Dan Gohman
0891d752a6
Constant-fold GEP-of-GEP into a single GEP.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98178 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 19:31:51 +00:00
Johnny Chen
dd0f3cf189
Factored out the disassembly printing of CPS option, MSR mask, and Negative Zero
...
operands into their own PrintMethod, in order not to pollute the printOperand()
impl with disassembly only Imm modifiers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98172 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 18:59:38 +00:00
Richard Osborne
72926c264a
The backend now makes a reasonable job of targeting lmul / macc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98169 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 18:14:47 +00:00
Richard Osborne
850f1cd3c0
Handle MVT::i64 type in DAG combine for ISD::ADD. Fold 64 bit
...
expression add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if all
operands are zero extended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98168 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 18:12:27 +00:00
Daniel Dunbar
0965200ac2
Remove unneeded includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98167 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 17:56:05 +00:00
Richard Osborne
ea670df852
Fix checking of intermediates having one use in isADDADDMUL
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 17:16:29 +00:00
Richard Osborne
886d861355
Extract recognition of patterns such as add(add(mul(x,y),a),b)
...
into a seperate function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98162 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 17:10:35 +00:00
Richard Osborne
25ab35e8c7
Fix thinko.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98158 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 16:27:11 +00:00
Richard Osborne
2dacd1e987
Fold add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if the intermediate
...
results are unused elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98157 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 16:19:31 +00:00
Benjamin Kramer
48ee0bbb72
Remove duplicated code. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98156 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 16:04:20 +00:00
Dale Johannesen
a2f767b1a7
Fix a bug in DEBUG_VALUE handling Devang ran into.
...
I'll get this loop right yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98155 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 15:06:26 +00:00
Richard Osborne
a2cc0613d0
Prefer LMUL to MACCU as LMUL has no tied operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 13:27:10 +00:00
Richard Osborne
a7e78402b8
Custom lower (S|U)MUL_LOHI -> MACC(S|U)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98152 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 13:20:07 +00:00
Richard Osborne
34f9d88221
Fix indentation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 11:42:05 +00:00
Richard Osborne
ebc64cf780
Lower add (mul a, b), c into MACCU / MACCS nodes which translate
...
directly to the maccu / maccs instructions. We handle this in
ExpandADDSUB since after type legalisation it is messy to
recognise these operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 11:41:08 +00:00
Chris Lattner
09d53fecfc
move three lowering hooks from MAI to TLOF and make one of them
...
semantic instead of syntactic. This completes MCization of
darwin/x86[-64]!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 07:20:42 +00:00
Dale Johannesen
c5cf227f3d
This survived a bootstrap, so let's try 98104 again.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98137 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 05:45:47 +00:00
Evan Cheng
fac4f1f181
Enable machine cse pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 03:07:41 +00:00
Chris Lattner
974c0fb404
mcize the rest of EH emission, only one more directive missing
...
for darwin/x86 to be completely mcized.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98130 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:48:06 +00:00
Chris Lattner
49f618a1e4
add missing filename!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:29:31 +00:00
Chris Lattner
98cdab53c3
set the temporary bit on MCSymbols correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:25:11 +00:00
Dan Gohman
2d0a91cd6c
Fix a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98122 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:18:48 +00:00
Evan Cheng
2938a00f29
Add a couple more heuristics to neuter machine cse some more.
...
1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled.
2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure.
Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again.
Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98121 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:12:03 +00:00
Daniel Dunbar
07a9641ebf
MC/Mach-O: Resolve a FIXME; these relocation types are no longer semanticaly different.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98120 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 02:10:29 +00:00
Chris Lattner
00685bb5cf
eliminate MCContext::CreateSymbol and CreateTemporarySymbol.
...
Add a new GetOrCreateTemporarySymbol method and a version that
takes a twine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98118 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 01:29:27 +00:00
Chris Lattner
d85fc6e0b1
inline away a form of IsPCRelative, eliminating the
...
dead IsPCRel argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 01:17:49 +00:00
Chris Lattner
188a87da79
add some fixme's for MCizing. EH still has a few things that
...
need to be MCized, but the last debug info thing are LEB and
cygwin specific (which the MC api doesn't support yet) and
one specific form of EmitReference which I'll tackle next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98116 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 01:04:13 +00:00
Daniel Dunbar
a015c1c876
MC/Mach-O: Use the SECTDIFF relocation type for (A - B + constant) where A is external.
...
- I'm not sure why, but this is what 'as' does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98115 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 00:58:25 +00:00
Jim Grosbach
7c617b5e53
Clear up the last (famous last words) frame index value reuse issues for Thumb1.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 00:13:42 +00:00
Dale Johannesen
7dda453410
Speculatively revert 98104; could be what's causing crashes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98108 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 00:11:34 +00:00
Chris Lattner
90e4af7b9d
mcize uses of PrintRelDirective and eliminate it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98107 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-10 00:09:21 +00:00
Chris Lattner
4aeaca4053
inline the bool form of PrintRelDirective away, leaving just the unsigned form.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98106 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:54:52 +00:00
Chris Lattner
233f52be36
eliminate EOL, adding all comments with the OutStreamer.AddComment
...
method. With this, comments should end up on the same lines as the .byte
directives (for example) and we now get no output with:
$ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose
woot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98105 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:52:58 +00:00
Dale Johannesen
7f876967c0
Ever more complicated DEBUG_VALUE fixes for branch folding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98104 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:52:37 +00:00
Dan Gohman
4ecbca558f
Avoid analyzing instructions in blocks not reachable from the entry block.
...
They are lots of trouble, and they don't matter. This fixes PR6559.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98103 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:46:50 +00:00
Chris Lattner
0d9d70f013
eliminate a bunch of \n's that are being printed to O. Next up is to kill
...
off "EOL".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98102 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:38:23 +00:00
Chris Lattner
fcdae492ea
convert the non-"ispcrel" case of EmitReference to MC,
...
significant debug info testcases are now all going through
MCStreamer, though they print a lot of extraneous newlines to "O".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:19:15 +00:00
Chris Lattner
2e5dd9b741
make the NullStreamer set the section on a label when emitted so that isDefined() works.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98100 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:12:18 +00:00
Jakob Stoklund Olesen
f7477470d3
Try to keep the cached inliner costs around for a bit longer for big functions.
...
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
This is a more conservative version of r98089 that doesn't break the clang
test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
for constant folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 23:02:17 +00:00
Daniel Dunbar
f291be3159
MC/X86: Rename alternate spellings of ADD{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 22:50:46 +00:00
Daniel Dunbar
1e8ee89c21
MC/X86: Rename alternate spellings of CMP{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98097 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 22:50:40 +00:00
Jakob Stoklund Olesen
b5a158bab8
Revert r98089, it was breaking a clang test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98094 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-09 22:43:37 +00:00