Evan Cheng [Tue, 23 Mar 2010 15:48:04 +0000 (15:48 +0000)]
Teach simplify libcall to transform __strcpy_chk to __memcpy_chk to enable optimizations down stream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99282
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 23 Mar 2010 14:40:20 +0000 (14:40 +0000)]
add assert in argpromotion, which cannot trigger
if Function::hasAddressTaken works as advertised
also included some cosmetic cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99276
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 23 Mar 2010 13:45:54 +0000 (13:45 +0000)]
word-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99275
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 23 Mar 2010 06:26:18 +0000 (06:26 +0000)]
Rename some instructions to match the corresponding NEON opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99266
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 23 Mar 2010 06:20:33 +0000 (06:20 +0000)]
Change VST1 instructions for loading Q register values to operate on pairs
of D registers. Add a separate VST1q instruction with a Q register
source operand for use by storeRegToStackSlot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99265
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 23 Mar 2010 06:06:09 +0000 (06:06 +0000)]
Fix an incorrect logic causing instcombine to miss some _chk -> non-chk transformations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99263
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 23 Mar 2010 05:25:43 +0000 (05:25 +0000)]
Change VLD1 instructions for loading Q register values to operate on pairs
of D registers. Add a separate VLD1q instruction with a Q register
destination operand for use by loadRegFromStackSlot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99261
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 23 Mar 2010 05:09:03 +0000 (05:09 +0000)]
MC: Switch to using MCInst fragments to do relaxation.
Also, both MCMachOStreamer and MCAssembler are now target independent!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99256
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 23 Mar 2010 03:13:05 +0000 (03:13 +0000)]
MC: Add TargetAsmBackend::MayNeedRelaxation, for checking whether a particular instruction + fixups might need relaxation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99249
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 23 Mar 2010 02:36:58 +0000 (02:36 +0000)]
MC: Add TargetAsmBackend::WriteNopData and use to eliminate some target dependencies in MCMachOStreamer and MCAssembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99248
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 23 Mar 2010 01:39:09 +0000 (01:39 +0000)]
MC: Add TargetAsmBackend::RelaxInstruction callback, and custom X86 implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99245
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 23 Mar 2010 01:39:05 +0000 (01:39 +0000)]
MC: Tweak MCInstFragment to include the encoded data and fixups, so that we don't need to recompute them during relaxation. I will revisit this once all the other pieces of fast relaxation are in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99244
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 22 Mar 2010 23:26:12 +0000 (23:26 +0000)]
Put MCSectionCOFF::Name into the MCContext instead of leaking it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99231
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 23:16:48 +0000 (23:16 +0000)]
MC: Add MCInstFragment, not used yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99229
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 23:16:43 +0000 (23:16 +0000)]
Add a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 22 Mar 2010 23:15:57 +0000 (23:15 +0000)]
Fix PR6673: updating the callback should not clear the map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99227
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 22 Mar 2010 23:11:36 +0000 (23:11 +0000)]
Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99225
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Mar 2010 22:44:31 +0000 (22:44 +0000)]
Fix 80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99224
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 22 Mar 2010 22:38:48 +0000 (22:38 +0000)]
DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99223
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 21:49:41 +0000 (21:49 +0000)]
MC: Fix a few more cases we were passing an MCDataFragment when a MCFragment would do, and sprinkle in some const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99218
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 21:49:38 +0000 (21:49 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99217
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 21:49:34 +0000 (21:49 +0000)]
MCInst: Add ::dump_pretty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99216
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Mar 2010 21:24:33 +0000 (21:24 +0000)]
Reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 22 Mar 2010 20:56:36 +0000 (20:56 +0000)]
Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy. Now with a fix
for the verifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99206
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 20:35:50 +0000 (20:35 +0000)]
MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead of a MCDataFragment). Object files should only need the generic MCFragment features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99205
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 20:35:46 +0000 (20:35 +0000)]
MC/Mach-O: Factor out getOrCreateDataFragment().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99204
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 20:35:43 +0000 (20:35 +0000)]
MC: Eliminate MCFragment::getMaxFileSize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99203
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 22 Mar 2010 20:35:35 +0000 (20:35 +0000)]
MC: Share the MCAsmLayout object, although its still not used for anything important.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99202
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 22 Mar 2010 20:31:39 +0000 (20:31 +0000)]
Rename one more NEON instruction that I missed earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99201
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 22 Mar 2010 18:47:14 +0000 (18:47 +0000)]
Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValue
it allocates to DwarfDebug::DIEValues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99196
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 22 Mar 2010 18:40:50 +0000 (18:40 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99195
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 22 Mar 2010 18:22:06 +0000 (18:22 +0000)]
Regroup some instructions. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99192
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 22 Mar 2010 18:13:18 +0000 (18:13 +0000)]
Rename some VLD1/VST1 instructions to match the implementation, i.e., the
corresponding NEON instructions, instead of operation they are currently
used for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99189
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 22 Mar 2010 18:02:38 +0000 (18:02 +0000)]
Remove some redundant instruction classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99187
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 22 Mar 2010 16:59:44 +0000 (16:59 +0000)]
llc doesn't need LinkAllVMCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99186
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 22 Mar 2010 16:43:10 +0000 (16:43 +0000)]
Refactor instruction encoding arguments for VLDnLN/VSTnLN classes to
specify encoding bits in arguments instead of "let" expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99185
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 22 Mar 2010 16:30:04 +0000 (16:30 +0000)]
Completely remove Blackfin patterns that thought JustCC was i1.
Thanks, Chris!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99183
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 22 Mar 2010 16:13:21 +0000 (16:13 +0000)]
Don't leak a MachineInstruction from Thumb1InstrInfo::restoreCalleeSavedRegisters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99182
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 22 Mar 2010 15:56:04 +0000 (15:56 +0000)]
Avoid leaking the FunctionPassManager from opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99180
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 22 Mar 2010 09:11:00 +0000 (09:11 +0000)]
backing out r99170 because it still fails on clang-x86_64-darwin10-fnt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99171
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 22 Mar 2010 08:28:00 +0000 (08:28 +0000)]
Now that hopefully all direct accesses to InvokeInst operands are fixed
we can reapply the InvokeInst operand reordering patch. (see r98957).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99170
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 22 Mar 2010 05:23:37 +0000 (05:23 +0000)]
Free all Constants in ~LLVMConstantImpl. We avoid assertion failures
by dropping all references from all constants that can use other
constants before trying to destroy any of them.
I also had to free bugpoint's Module in ~BugDriver().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99160
91177308-0d34-0410-b5e6-
96231b3b80d8
Erick Tryzelaar [Sun, 21 Mar 2010 23:15:13 +0000 (23:15 +0000)]
Fix the ocaml kaleidoscope tutorial to fix linking external libraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99151
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sun, 21 Mar 2010 22:23:02 +0000 (22:23 +0000)]
modernize the do-all-for-me target to run lit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99148
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 22:08:41 +0000 (22:08 +0000)]
Re-add the Metadata.h include to LLVMContextImpl.h so that MDNode is complete
where FoldingSet<MDNode> is instantiated. Clang and MSVC complain; gcc
doesn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99147
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 21:17:34 +0000 (21:17 +0000)]
Move the LLVMContextImpl implementation into a .cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99146
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 20:37:19 +0000 (20:37 +0000)]
Memoize InlineAsms into the LLVMContext and delete them on shutdown.
Fixes PR803.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99143
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 08:12:46 +0000 (08:12 +0000)]
XFAIL tests from LLVMC on valgrind or valgrind+leak-checking. We
don't care about leaks from tblgen, and I assume we don't care about
valgrind errors in llvm-gcc/g++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99115
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 01:47:49 +0000 (01:47 +0000)]
Free SavedLI even if SimpleRegisterCoalescing::JoinCopy() returns early.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99113
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sun, 21 Mar 2010 01:47:33 +0000 (01:47 +0000)]
When we don't pass --vg-leak to lit, pass --leak-check=no to valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99112
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 21 Mar 2010 01:38:21 +0000 (01:38 +0000)]
Fix suggested parentheses warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99111
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Sat, 20 Mar 2010 23:08:45 +0000 (23:08 +0000)]
Add support for XFAILing valgrind runs with memory leak checking independently
of runs without leak checking. We add -vg to the triple for non-checked runs,
or -vg_leak for checked runs. Also use this to XFAIL the TableGen tests, since
tablegen leaks like a sieve. This includes some valgrindArgs refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99103
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:38 +0000 (22:36 +0000)]
MC/X86: Fix an MCOperand link, when we parsing shrld $1,%eax and friends; I believe this fixes the last memory leaks under test/MC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99102
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:35 +0000 (22:36 +0000)]
llvm-mc: Fix MCInstPrinter memory leaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99101
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:32 +0000 (22:36 +0000)]
MC/Mach-O: Remove Darwin host specific tests, we don't need them anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99100
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:29 +0000 (22:36 +0000)]
MC/Mach-O: Tweak optimal_nop test to be host independent.
- This also avoids us running valgrind on /usr/bin/as, which has leaks. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99099
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:25 +0000 (22:36 +0000)]
llvm-mc: Fix memory leak of MCAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99098
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 22:36:22 +0000 (22:36 +0000)]
TargetRegistry: Fix create{AsmInfo,MCDisassembler} to return non-const objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99097
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 22:20:40 +0000 (22:20 +0000)]
pr6652: Use LDM to restore PC to the return address on ARMv4.
Patch by John Tytgat!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99096
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 22:13:40 +0000 (22:13 +0000)]
Re-commit r98683 ("remove redundant writeback flag from ARM address mode 6")
with changes to add a separate optional register update argument. Change all
the NEON instructions with address register writeback to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99095
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 21:57:36 +0000 (21:57 +0000)]
Add instruction variants for VST2, VST3, and VST4 "store-lane" operations with
address register writeback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99094
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 21:45:18 +0000 (21:45 +0000)]
Add variants of VST2, VST3 and VST4 with address register writeback, and
rewrite the existing VST3 and VST4 instructions to use the same classes as
the others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99093
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 21:15:48 +0000 (21:15 +0000)]
Add instructions for double-spaced VST3 and VST4 without address register
writeback, and refactor the existing double-spaced VST2 instructions.
These are only for the disassembler since codegen doesn't use them, at
least for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99090
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 21:12:48 +0000 (21:12 +0000)]
tests: Mangle '-vg' onto the end of the triple when running under valgrind, so
we can use the standard XFAIL and XTARGET to conditional tests based on
valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99088
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 20 Mar 2010 21:00:25 +0000 (21:00 +0000)]
Add a setCalledFunction member to InvokeInst (like in CallInst)
and use this (as well as getCalledValue) to access the callee,
instead of {g|s}etOperand(0).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99084
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 20:54:36 +0000 (20:54 +0000)]
Add VST1 instructions with address register writeback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99083
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 20:47:18 +0000 (20:47 +0000)]
Add instruction variants for VLD2, VLD3, and VLD4 "load-lane" operations with
address register writeback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99082
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 20:39:53 +0000 (20:39 +0000)]
Tidy some more comments and whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99081
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 20:10:51 +0000 (20:10 +0000)]
Add variants of VLD2, VLD3 and VLD4 with address register writeback, and
rewrite the existing VLD3 and VLD4 instructions to use the same classes as
the others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99080
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 19:57:03 +0000 (19:57 +0000)]
Tidy some comments and whitespace for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99078
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 18:35:24 +0000 (18:35 +0000)]
Rename some instructions for consistency and sanity: use "_UPD" suffix for
load/stores with address register writeback, and use "odd" suffix to distinguish
instructions to access odd numbered registers (instead of "a" and "b").
No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99066
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 18:14:26 +0000 (18:14 +0000)]
Add instructions for double-spaced VLD3 and VLD4 without address register
writeback, and refactor the existing double-spaced VLD2 instructions.
These are only for the disassembler since codegen doesn't use them, at
least for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99065
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 17:59:03 +0000 (17:59 +0000)]
Add VLD1 instructions with address register writeback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99062
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 20 Mar 2010 17:41:18 +0000 (17:41 +0000)]
PIC16: Simplify code by using a std::set<std::string> instead of a sorted & uniqued std::list of leaked char*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99061
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 06:34:02 +0000 (06:34 +0000)]
Revert the rest of 98679.
--- Reverse-merging r98679 into 'lib/Target/ARM/ARMInstrVFP.td':
U lib/Target/ARM/ARMInstrVFP.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99049
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 20 Mar 2010 06:05:13 +0000 (06:05 +0000)]
Fix a very bad typo. Since the register number was off by one, the ARM
load/store optimizer would incorrectly think that registers D26 and D28
were consecutive and would generate a VLDM instruction to load them.
The assembler was not convinced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99043
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 20 Mar 2010 03:53:53 +0000 (03:53 +0000)]
Clear the SCEVExpander's insertion point after making deletions,
so that the SCEVExpander doesn't retain a dangling pointer as its
insert position. The dangling pointer in this case wasn't ever used
to insert new instructions, but it was causing trouble with
SCEVExpander's code for automatically advancing its insert position
past debug intrinsics.
This fixes use-after-free errors that valgrind noticed in
test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and
test/Transforms/IndVarSimplify/exit_value_tests.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99036
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Mar 2010 03:17:05 +0000 (03:17 +0000)]
Stupid svn. Add back to the lost sibcall tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99033
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 20 Mar 2010 02:58:15 +0000 (02:58 +0000)]
If call result is in ST0 and it is not being passed to the caller's
caller, then it is not safe to optimize the call into a sibcall since
the call result has to be popped off the x87 stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99032
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 20 Mar 2010 01:58:40 +0000 (01:58 +0000)]
Better fix for r98994, MachObjectWriterImpl wasn't intended to be virtual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99031
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Sat, 20 Mar 2010 00:17:00 +0000 (00:17 +0000)]
Add NLdStFrm Format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99014
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Fri, 19 Mar 2010 23:50:27 +0000 (23:50 +0000)]
Revert r98679. The disassembler will be updated to depend on the existence of
IndexModeUpd and then populates the Inst{21}=1 while populating the instructions
for disassembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99013
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 19 Mar 2010 23:04:23 +0000 (23:04 +0000)]
Revert r99009 temporarily it seems to be breaking the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99011
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 19 Mar 2010 22:51:32 +0000 (22:51 +0000)]
Revert this change, since it was causing ARM performance regressions.
--- Reverse-merging r98889 into '.':
U lib/Target/ARM/ARMInstrNEON.td
U lib/Target/ARM/ARMISelLowering.h
U lib/Target/ARM/ARMInstrInfo.td
U lib/Target/ARM/ARMInstrVFP.td
U lib/Target/ARM/ARMISelLowering.cpp
U lib/Target/ARM/ARMInstrFormats.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99010
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 22:40:56 +0000 (22:40 +0000)]
Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99009
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 21:56:21 +0000 (21:56 +0000)]
make getOperandNum a static function (since it's just used by
ApplyTypeConstraint) and make it handle multiple result nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99003
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 19 Mar 2010 21:51:03 +0000 (21:51 +0000)]
Fix more places to more thoroughly ignore debug intrinsics. This fixes
use-before-def errors in SCEVExpander-produced code in sqlite3 when debug
info with optimization is enabled, though the testcases for this are
dependent on use-list order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99001
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 21:43:36 +0000 (21:43 +0000)]
remove the patterns that I commented out in r98930, Dan verified
that they are dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99000
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 21:37:09 +0000 (21:37 +0000)]
major surgery on tblgen: generalize TreePatternNode
to maintain a list of types (one for each result of
the node) instead of a single type. There are liberal
hacks added to emulate the old behavior in various
situations, but they can start disolving now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98999
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 19 Mar 2010 21:31:39 +0000 (21:31 +0000)]
Force configuration of some projects before others. In particular, some
projects rely upon llvm-gcc, the LLVM test suite, and poolalloc. This ensures
that the aforementioned projects have their object trees created first so that
other projects can find their object trees when they themselves are configured.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98998
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 19 Mar 2010 21:26:46 +0000 (21:26 +0000)]
Fix -Wnon-virtual-dtor warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98994
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 19 Mar 2010 21:22:13 +0000 (21:22 +0000)]
Regenerate configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98990
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 19 Mar 2010 21:19:10 +0000 (21:19 +0000)]
Bump version number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98989
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Holt [Fri, 19 Mar 2010 21:12:29 +0000 (21:12 +0000)]
Test commit (removed extra blank line)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98988
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 19 Mar 2010 21:06:24 +0000 (21:06 +0000)]
call void @llvm.dbg.declare(metadata !{i32* null}, metadata !1)
is valid, but not useful, when variable identified by !1 is optimized away by the optimizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98986
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Fri, 19 Mar 2010 21:04:16 +0000 (21:04 +0000)]
Updated copyright year to 2010.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98985
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Fri, 19 Mar 2010 20:04:42 +0000 (20:04 +0000)]
Fixed the encoding problems of the crc32 instructions. All had the Operand size
override prefix and only the r/m16 forms should have had that. Also for variant
one, the AT&T syntax, added suffixes to all forms. Also added the missing
64-bit form for 'CRC32 r64, r/m8'. Plus added test cases for all forms and
tweaked one test case to add the needed suffixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98980
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 19 Mar 2010 19:05:41 +0000 (19:05 +0000)]
Stop trying to merge identical jump tables. This had been inadvertently
disabled for several months (since svn r88806) and no one noticed. My fix
for pr6543 yesterday reenabled it, but broke the ARM port's code for using
TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only,
I'm just taking this out. It is not common to have identical jump tables,
the code we used to merge them was O(N^2), and it only helps code size, not
performance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98977
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 18:07:55 +0000 (18:07 +0000)]
MC/Mach-O/x86_64: Add relocation support.
- This is "extraordinarily" Darwin 'as' compatible. See the litany of FIXMEs littered about for more information.
- There are a few cases which seem to clearly be 'as' bugs which I have left unsupported, and there is one cases where we diverge but should fix if it blocks diffing .o files (Darwin 'as' ends up widening a jump unnecessarily).
- 403.gcc build, runs, and diffs equivalently to the 'as' built version now (using llvm-mc). However, it builds so slowly that I wouldn't recommend trying it quite yet. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98974
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 18:07:50 +0000 (18:07 +0000)]
llvm-mc: Fix target selection for --disassemble to use GetTarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98973
91177308-0d34-0410-b5e6-
96231b3b80d8