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
Daniel Dunbar [Fri, 19 Mar 2010 18:07:48 +0000 (18:07 +0000)]
MC/X86: Rename alternate spellings of {ADD64,CMP64} 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@98972
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 18:07:43 +0000 (18:07 +0000)]
FileCheck: Don't print "possibly intended match" line if it would match the
"scanning from here" one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98971
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Fri, 19 Mar 2010 17:54:21 +0000 (17:54 +0000)]
Set numThreads to 1 by default when Python is older than 2.5.2.
Python 2.4 always hits this bug: http://bugs.python.org/issue1731717
when running check-lit on multi-core systems.
Setting numThreads to 1 makes it slower, but at least the results reported are
correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98969
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 17:41:26 +0000 (17:41 +0000)]
make FillWithPossibleTypes take a predicate to filter types so that
we don't blow the smallvector as often. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98968
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Fri, 19 Mar 2010 17:39:00 +0000 (17:39 +0000)]
Renumber LdStExFrm from 28 to 11 and shift the existing format values to make
room for it. This is in preparation for another patch which is adding NEON
subformats to facilitate disassembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98967
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 19 Mar 2010 15:36:58 +0000 (15:36 +0000)]
Acccess control is lame
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98962
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 19 Mar 2010 15:31:09 +0000 (15:31 +0000)]
struct -> class, to silence a Clang warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98961
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 19 Mar 2010 13:50:02 +0000 (13:50 +0000)]
back out r98957, it broke smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98958
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 19 Mar 2010 11:55:53 +0000 (11:55 +0000)]
Recommit r80858 again (which has been backed out in r80871).
This time I did a self-hosted bootstrap on Linux x86-64,
with no problems. Let's see how darwin 64-bit self-hosting
goes. At the first sign of failure I'll back this out.
Maybe the valgrind bots give me a hint of what may be wrong
(it at all).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98957
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 10:43:26 +0000 (10:43 +0000)]
MC: Add TargetAsmBackend::createObjectWriter.
- MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98955
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 10:43:23 +0000 (10:43 +0000)]
MCCodeEmitter: Add target independent fixup flag for is-pc-relative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98954
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 10:43:18 +0000 (10:43 +0000)]
MC: Sink code emitter into MCAssembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98953
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 10:43:15 +0000 (10:43 +0000)]
MC/Mach-O: Move to MachObjectWriter.{h,cpp}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98952
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 09:29:03 +0000 (09:29 +0000)]
MC: Add TargetAsmBackend::isVirtualSection hook.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98950
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 09:28:59 +0000 (09:28 +0000)]
MC: Split MCObjectWriter out of MCAssembler.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98949
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 09:28:55 +0000 (09:28 +0000)]
MCAssembler: Pull out MCObjectWriter class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98948
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 09:28:12 +0000 (09:28 +0000)]
MCAssembler: Move ApplyFixup to the TargetAsmBackend, this is a target specific not object writer specific task.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98947
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 07:09:47 +0000 (07:09 +0000)]
MC/Mach-O: Lift the fixup evaluation and application up (to the same place), and eliminate MCAsmFixup::FixedValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98944
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 07:09:33 +0000 (07:09 +0000)]
MC/Mach-O: Factor out ExecutePostLayoutBinding, to separate the post-layout changes the object writer may need to make to the assembler from the actual .o writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98943
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 07:09:18 +0000 (07:09 +0000)]
MC/Mach-O: Lift relocation emission logic a bit higher to separate evaluation / relocation handling from the actual .o writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98942
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 19 Mar 2010 07:06:46 +0000 (07:06 +0000)]
Remove a memory leak from the CBackend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98941
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 05:48:53 +0000 (05:48 +0000)]
fix an MCInstPrinter leak that jyasskin pointed out:
createAsmStreamer now takes ownership of the instprinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98939
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 05:34:15 +0000 (05:34 +0000)]
resolve fixme: we now infer the instruction-level 'isvariadic' bit
from the pattern if present, and we use it instead of the bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98938
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 05:33:51 +0000 (05:33 +0000)]
set SDNPVariadic on nodes throughout the rest of the targets that
need them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98937
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 19 Mar 2010 05:25:28 +0000 (05:25 +0000)]
Remove a memory leak from ThumbTargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98936
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 05:07:09 +0000 (05:07 +0000)]
add a new SDNPVariadic SDNP node flag, and use it in
dag isel gen instead of instruction properties. This
allows the oh-so-useful behavior of matching a variadic
non-root node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98934
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 04:54:36 +0000 (04:54 +0000)]
rewrite EnforceSmallerThan to be less bone headed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 04:53:47 +0000 (04:53 +0000)]
remove some damaged sign extend patterns that can never match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98932
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 04:53:21 +0000 (04:53 +0000)]
disable some illegal blackfin patterns. sext from i32 to i32 can never
match. Jakob, please take a look when you get a chance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98931
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 04:14:21 +0000 (04:14 +0000)]
comment out a bunch of parallel store patterns that apparently
can't match or just have no testcases. Will remove after
confirmation from dan that they really are dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98930
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:23 +0000 (03:18 +0000)]
Fix -Asserts warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98928
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:20 +0000 (03:18 +0000)]
Fix -Asserts warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98927
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:18 +0000 (03:18 +0000)]
MC/Mach-O: Add isScatteredFixupFullyResolved, which implements the correct algorithm (used on x86_64) for determining whether an evaluated fixup is fully resolved (doesn't need relocation).
- Test cases will follow, once we have x86_64 relocation support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98926
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:15 +0000 (03:18 +0000)]
MC/Mach-O/x86_64: Add getAtom[ForAddress].
- These find the defining symbol which identifies the containing atom for a symbol or address. They are currently very slow, but will be eliminated eventually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98925
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:12 +0000 (03:18 +0000)]
MC/Mach-O: Factor out isScatteredFixupFullyResolvedSimple predicate, and fix some corner cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98924
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:09 +0000 (03:18 +0000)]
MC/Mach-O: Factor out isSymbolLinkerVisible method; "linker visible" is a made up term to refer to non-temporary labels + temporary labels in sections-which-require symbols. For Darwin, it corresponds to symbols which effectively define an atom.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98923
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 03:18:05 +0000 (03:18 +0000)]
Drop KLEE blurb, we don't have anything new.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98922
91177308-0d34-0410-b5e6-
96231b3b80d8
Mon P Wang [Fri, 19 Mar 2010 01:19:52 +0000 (01:19 +0000)]
Fixed a widening bug where we were not using the correct size for the load
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98920
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 19 Mar 2010 01:15:03 +0000 (01:15 +0000)]
X86: Fix encoding for TEST64rr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98919
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 01:14:27 +0000 (01:14 +0000)]
eliminate the last use of EEVT::isUnknown
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98918
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 19 Mar 2010 01:10:41 +0000 (01:10 +0000)]
Remove `ignore` from LLVMC/TestWarnings.td. This avoids
https://bugs.kde.org/show_bug.cgi?id=231257 and seems not to have been
needed in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98917
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 01:07:44 +0000 (01:07 +0000)]
Finally change the instruction looking map to be a densemap from
record* -> instrinfo instead of std::string -> instrinfo.
This speeds up tblgen on cellcpu from 7.28 -> 5.98s with a debug
build (20%).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98916
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 01:00:55 +0000 (01:00 +0000)]
make inst_begin/inst_end iterate over InstructionsByEnumValue.
Use CodeGenTarget::getInstNamespace in one place and fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98915
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:50:47 +0000 (00:50 +0000)]
revert 98912
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98914
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:40:22 +0000 (00:40 +0000)]
make inst_begin/inst_end iterate over InstructionsByEnumValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98912
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 19 Mar 2010 00:36:35 +0000 (00:36 +0000)]
FP16 constfolding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98911
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:34:35 +0000 (00:34 +0000)]
change Target.getInstructionsByEnumValue to return a reference
to a vector that CGT stores instead of synthesizing it on every
call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98910
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 19 Mar 2010 00:32:11 +0000 (00:32 +0000)]
Revert r98892. BSD systems may not have bash installed at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98909
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:23:20 +0000 (00:23 +0000)]
factor copy and paste code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98908
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:18:23 +0000 (00:18 +0000)]
don't go through getInstructions().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98906
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Fri, 19 Mar 2010 00:09:28 +0000 (00:09 +0000)]
Bugpoint's default memory limit (100MB) was too low for valgrind, so
this patch raises the default to 800MB when valgrind's active. 800
was chosen semi-arbitrarily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98905
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:07:20 +0000 (00:07 +0000)]
look up instructions by record, not by name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98904
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Mar 2010 00:01:11 +0000 (00:01 +0000)]
Now that tblgen can handle matching implicit defs of instructions
to input patterns, we can fix X86ISD::CMP and X86ISD::BT as taking
two inputs (which have to be the same type) and *returning an i32*.
This is how the SDNodes get made in the graph, but we weren't able
to model it this way due to deficiencies in the pattern language.
Now we can change things like this:
def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP,
- [(X86cmp RFP80:$lhs, RFP80:$rhs),
- (implicit EFLAGS)]>; // CC = ST(0) cmp ST(i)
+ [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>;
and fix terrible crimes like this:
-def : Pat<(parallel (X86cmp GR8:$src1, 0), (implicit EFLAGS)),
+def : Pat<(X86cmp GR8:$src1, 0),
(TEST8rr GR8:$src1, GR8:$src1)>;
This relies on matching the result of TEST8rr (which is EFLAGS, which is
an implicit def) to the result of X86cmp, an i32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98903
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 18 Mar 2010 23:57:57 +0000 (23:57 +0000)]
Update comment to refer to the right filename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98902
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 23:57:57 +0000 (23:57 +0000)]
tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98901
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 23:57:40 +0000 (23:57 +0000)]
expand tblgen's support for instructions with implicit defs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98900
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 23:15:10 +0000 (23:15 +0000)]
infer results of a pattern from implicit defs. This allows you to do something
like this:
def : Pat<(add ...),
(FOOINST)>;
When fooinst only has a single implicit def (e.g. to R1). This will be handled
as if written as (set R1, (FOOINST ...))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98897
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Thu, 18 Mar 2010 22:56:02 +0000 (22:56 +0000)]
Work around a valgrind oddity where it doesn't pass the full path of a
script to the #! command by using bash instead of /bin/sh. Bash
searches $PATH for its script argument, but dash, which /bin/sh
resolves to on some systems, does not.
https://bugs.kde.org/show_bug.cgi?id=231257 tracks the valgrind
problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98892
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 18 Mar 2010 22:35:45 +0000 (22:35 +0000)]
Get rid of target-specific fp <-> int nodes when still I'm here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98889
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 18 Mar 2010 22:35:37 +0000 (22:35 +0000)]
Get rid of target-specific nodes for fp16 <-> fp32 conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98888
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Thu, 18 Mar 2010 22:35:02 +0000 (22:35 +0000)]
Refactor Reg-Reg copy emission routine for ARM. This makes cross-regclass copies weirdness more straightforward. Also, add GPR <-> SPR copy support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98887
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 18 Mar 2010 21:58:33 +0000 (21:58 +0000)]
Couple of changes that Dan mentioned for llvm.stackprotector fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98881
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 18 Mar 2010 21:53:54 +0000 (21:53 +0000)]
X86MCCodeEmitter: Fix two minor issues with reloc_riprel_4byte_movq_load, we
were missing it on some movq instructions and were not including the appropriate
PCrel bias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98880
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 21:42:03 +0000 (21:42 +0000)]
capture implicit uses and defs in CodeGenInstruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98879
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 21:15:05 +0000 (21:15 +0000)]
simplify this code, the # of sets in the pattern for an instruction
shouldn't change this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98872
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 21:07:51 +0000 (21:07 +0000)]
disallow concatenation of two dags with different operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98871
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 21:07:39 +0000 (21:07 +0000)]
rewrite this to not artificially force concat the ins/outs list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98870
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 21:06:54 +0000 (21:06 +0000)]
fix some buggy ops concatentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98869
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:56:35 +0000 (20:56 +0000)]
eliminate support for "ops" in the input/output list of an
instruction. Instructions must use 'ins' and 'outs' now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98868
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:55:31 +0000 (20:55 +0000)]
use ins/outs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98867
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:55:18 +0000 (20:55 +0000)]
use ins/outs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98866
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:50:52 +0000 (20:50 +0000)]
remove some code that was working around old sparc v9 backend bugs.
Add checking that the input/output operand list in spelled right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98865
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:50:06 +0000 (20:50 +0000)]
outs come before ins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98864
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 18 Mar 2010 20:27:26 +0000 (20:27 +0000)]
Make fast-isel understand llvm.stackprotector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98862
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 18 Mar 2010 20:18:39 +0000 (20:18 +0000)]
Refactor NEON ld/st instructions to hardcode class arguments that are constants.
No functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98860
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 18 Mar 2010 20:06:05 +0000 (20:06 +0000)]
lit: Tweak example tests config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98859
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 18 Mar 2010 20:06:02 +0000 (20:06 +0000)]
MC/X86/AsmMatcher: Use the new instruction cleanup routine to implement a
temporary workaround for matching inc/dec on x86_64 to the correct instruction.
- This hack will eventually be replaced with a robust mechanism for handling
matching instructions based on the available target features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98858
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 18 Mar 2010 20:05:56 +0000 (20:05 +0000)]
MC/AsmMatcher: Add support for target specific "instruction cleanup" functions,
to allow custom post-processing of matched instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98857
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 20:04:36 +0000 (20:04 +0000)]
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
Dan Gohman [Thu, 18 Mar 2010 19:37:35 +0000 (19:37 +0000)]
offsetof always has type size_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98854
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Mar 2010 19:34:33 +0000 (19:34 +0000)]
Simplify this code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98853
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 18 Mar 2010 19:34:06 +0000 (19:34 +0000)]
Fix a name clash that was breaking MSVC builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98852
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Mar 2010 19:01:12 +0000 (19:01 +0000)]
Explicitly cast std::min's arguments to avoid type mismatches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98851
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 18 Mar 2010 18:59:08 +0000 (18:59 +0000)]
another one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98850
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Mar 2010 18:49:47 +0000 (18:49 +0000)]
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
Dan Gohman [Thu, 18 Mar 2010 18:47:50 +0000 (18:47 +0000)]
Make this test more lenient; with SmallVector now using actually
aligned storage, the capacity may be more than what is explicitly
requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98846
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 18 Mar 2010 18:42:41 +0000 (18:42 +0000)]
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
Dan Gohman [Thu, 18 Mar 2010 18:40:47 +0000 (18:40 +0000)]
Fix a bug found by inspection; in the __GNUC__ code, the alignment
doesn't apply to the type, only to the variable, so subsequent uses
of U which expect it to be aligned weren't actually aligned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98843
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Thu, 18 Mar 2010 18:18:00 +0000 (18:18 +0000)]
Nick wants these alphabetized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98840
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 18:10:56 +0000 (18:10 +0000)]
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
Dan Gohman [Thu, 18 Mar 2010 18:07:13 +0000 (18:07 +0000)]
Add explicit braces to avoid ambiguous ‘else’.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98838
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Mar 2010 17:52:22 +0000 (17:52 +0000)]
callq is pcrelative
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98835
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 18 Mar 2010 16:52:15 +0000 (16:52 +0000)]
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
Devang Patel [Thu, 18 Mar 2010 16:41:16 +0000 (16:41 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98830
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 18 Mar 2010 16:16:38 +0000 (16:16 +0000)]
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
Wesley Peck [Thu, 18 Mar 2010 14:31:30 +0000 (14:31 +0000)]
Adding MicroBlaze as an experimental backend in the release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98824
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 18 Mar 2010 13:52:05 +0000 (13:52 +0000)]
CMake: Add options for using static runtime on MSVC++ build.
Patch by Victor Zverovich!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98821
91177308-0d34-0410-b5e6-
96231b3b80d8