oota-llvm.git
14 years agoMC: Add TargetAsmBackend::isVirtualSection hook.
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

14 years agoMC: Split MCObjectWriter out of MCAssembler.cpp.
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

14 years agoMCAssembler: Pull out MCObjectWriter class.
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

14 years agoMCAssembler: Move ApplyFixup to the TargetAsmBackend, this is a target specific not...
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

14 years agoMC/Mach-O: Lift the fixup evaluation and application up (to the same place), and...
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

14 years agoMC/Mach-O: Factor out ExecutePostLayoutBinding, to separate the post-layout changes...
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

14 years agoMC/Mach-O: Lift relocation emission logic a bit higher to separate evaluation / reloc...
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

14 years agoRemove a memory leak from the CBackend.
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

14 years agofix an MCInstPrinter leak that jyasskin pointed out:
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

14 years agoresolve fixme: we now infer the instruction-level 'isvariadic' bit
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

14 years agoset SDNPVariadic on nodes throughout the rest of the targets that
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

14 years agoRemove a memory leak from ThumbTargetMachine.
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

14 years agoadd a new SDNPVariadic SDNP node flag, and use it in
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

14 years agorewrite EnforceSmallerThan to be less bone headed.
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

14 years agoremove some damaged sign extend patterns that can never match.
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

14 years agodisable some illegal blackfin patterns. sext from i32 to i32 can never
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

14 years agocomment out a bunch of parallel store patterns that apparently
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

14 years agoFix -Asserts warnings.
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

14 years agoFix -Asserts warning.
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

14 years agoMC/Mach-O: Add isScatteredFixupFullyResolved, which implements the correct algorithm...
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

14 years agoMC/Mach-O/x86_64: Add getAtom[ForAddress].
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

14 years agoMC/Mach-O: Factor out isScatteredFixupFullyResolvedSimple predicate, and fix some...
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

14 years agoMC/Mach-O: Factor out isSymbolLinkerVisible method; "linker visible" is a made up...
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

14 years agoDrop KLEE blurb, we don't have anything new.
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

14 years agoFixed a widening bug where we were not using the correct size for the load
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

14 years agoX86: Fix encoding for TEST64rr.
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

14 years agoeliminate the last use of EEVT::isUnknown
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

14 years agoRemove `ignore` from LLVMC/TestWarnings.td. This avoids
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

14 years agoFinally change the instruction looking map to be a densemap from
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

14 years agomake inst_begin/inst_end iterate over InstructionsByEnumValue.
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

14 years agorevert 98912
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

14 years agomake inst_begin/inst_end iterate over InstructionsByEnumValue.
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

14 years agoFP16 constfolding
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

14 years agochange Target.getInstructionsByEnumValue to return a reference
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

14 years agoRevert r98892. BSD systems may not have bash installed at all.
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

14 years agofactor copy and paste code.
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

14 years agodon't go through getInstructions().
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

14 years agoBugpoint's default memory limit (100MB) was too low for valgrind, so
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

14 years agolook up instructions by record, not by name.
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

14 years agoNow that tblgen can handle matching implicit defs of instructions
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

14 years agoUpdate comment to refer to the right filename.
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

14 years agotidy up
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

14 years agoexpand tblgen's support for instructions with implicit defs.
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

14 years agoinfer results of a pattern from implicit defs. This allows you to do something
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

14 years agoWork around a valgrind oddity where it doesn't pass the full path of a
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

14 years agoGet rid of target-specific fp <-> int nodes when still I'm here.
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

14 years agoGet rid of target-specific nodes for fp16 <-> fp32 conversion.
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

14 years agoRefactor Reg-Reg copy emission routine for ARM. This makes cross-regclass copies...
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

14 years agoCouple of changes that Dan mentioned for llvm.stackprotector fast-isel.
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

14 years agoX86MCCodeEmitter: Fix two minor issues with reloc_riprel_4byte_movq_load, we
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

14 years agocapture implicit uses and defs in CodeGenInstruction
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

14 years agosimplify this code, the # of sets in the pattern for an instruction
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

14 years agodisallow concatenation of two dags with different operators.
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

14 years agorewrite this to not artificially force concat the ins/outs list.
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

14 years agofix some buggy ops concatentation
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

14 years agoeliminate support for "ops" in the input/output list of an
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

14 years agouse ins/outs
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

14 years agouse ins/outs.
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

14 years agoremove some code that was working around old sparc v9 backend bugs.
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

14 years agoouts come before ins.
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

14 years agoMake fast-isel understand llvm.stackprotector.
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

14 years agoRefactor NEON ld/st instructions to hardcode class arguments that are constants.
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

14 years agolit: Tweak example tests config.
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

14 years agoMC/X86/AsmMatcher: Use the new instruction cleanup routine to implement a
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

14 years agoMC/AsmMatcher: Add support for target specific "instruction cleanup" functions,
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

14 years agofix an x86-64 encoding bug Daniel found.
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

14 years agooffsetof always has type size_t.
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

14 years agoSimplify this code.
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

14 years agoFix a name clash that was breaking MSVC builds.
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

14 years agoExplicitly cast std::min's arguments to avoid type mismatches.
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

14 years agoanother one
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

14 years agoDefine placement new wrappers for BumpPtrAllocator and
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

14 years agoMake this test more lenient; with SmallVector now using actually
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

14 years agoFix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to
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

14 years agoFix a bug found by inspection; in the __GNUC__ code, the alignment
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

14 years agoNick wants these alphabetized
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

14 years agoadd a special relocation type for movq loads for object
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

14 years agoAdd explicit braces to avoid ambiguous ‘else’.
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

14 years agocallq is pcrelative
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

14 years agoCheck if function names start with "llvm." before trying to lookup them up as
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

14 years agoFix comment.
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

14 years agoAdd the ability to "intern" FoldingSetNodeID data into a
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

14 years agoAdding MicroBlaze as an experimental backend in the release notes
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

14 years agoCMake: Add options for using static runtime on MSVC++ build.
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

14 years agoAdd an extra newline to separate PP directives from the contents
Kovarththanan Rajaratnam [Thu, 18 Mar 2010 13:16:38 +0000 (13:16 +0000)]
Add an extra newline to separate PP directives from the contents

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98820 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTry to fix a valgrind error on 32 bit platforms: use %zu instead of %llu to format...
Benjamin Kramer [Thu, 18 Mar 2010 12:18:36 +0000 (12:18 +0000)]
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

14 years agoAvoid a problem in libc_freeres() seen on a linux-i686 buildbot when running
Jeffrey Yasskin [Thu, 18 Mar 2010 07:00:12 +0000 (07:00 +0000)]
Avoid a problem in libc_freeres() seen on a linux-i686 buildbot when running
under valgrind:

==19577== Invalid free() / delete / delete[]
==19577==    at 0x4C9C866: free (vg_replace_malloc.c:325)
==19577==    by 0x5121104: ??? (in /lib/libc-2.10.2.so)
==19577==    by 0x4C97412: _vgnU_freeres (vg_preloaded.c:62)
==19577==    by 0x5041486: __run_exit_handlers (exit.c:93)
==19577==    by 0x50414FE: exit (exit.c:100)
==19577==    by 0x5028B5C: (below main) (libc-start.c:254)
==19577==  Address 0xffffffff is not stack'd, malloc'd or (recently) free'd
==19577==

Apparently this happens under certain versions of glibc, so valgrind provides
the --run-libc-freeres=no option to avoid calling freeres().  This may increase
the number of "still reachable" blocks valgrind reports, but we don't care
about those, while this error breaks the buildbots.

There are upstream bugs about this at
http://sourceware.org/bugzilla/show_bug.cgi?id=10610 and
http://bugs.kde.org/show_bug.cgi?id=167483, but they don't look likely to be
fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98813 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTurning off post-ra scheduling for x86. It isn't a consistent win.
Evan Cheng [Thu, 18 Mar 2010 06:55:42 +0000 (06:55 +0000)]
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

14 years agoadd a couple blurbs back
Chris Lattner [Thu, 18 Mar 2010 06:52:15 +0000 (06:52 +0000)]
add a couple blurbs back

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98809 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReapply r98755 with a thinko which miscompiled gengtype fixed.
Dan Gohman [Thu, 18 Mar 2010 01:17:13 +0000 (01:17 +0000)]
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

14 years agoMCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will need this...
Daniel Dunbar [Thu, 18 Mar 2010 00:59:10 +0000 (00:59 +0000)]
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

14 years agoAdd MCSymbol::isInSection.
Daniel Dunbar [Thu, 18 Mar 2010 00:59:02 +0000 (00:59 +0000)]
Add MCSymbol::isInSection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98790 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMC/Darwin: Add a new target hook for whether the target uses "reliable" symbol differ...
Daniel Dunbar [Thu, 18 Mar 2010 00:58:53 +0000 (00:58 +0000)]
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

14 years agoRevert "Change coalescer complexity from N^2 to N logN by changing one letter."
Jakob Stoklund Olesen [Thu, 18 Mar 2010 00:23:47 +0000 (00:23 +0000)]
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

14 years agoX86 address mode matching code MatchAddressRecursively does some aggressive hack...
Evan Cheng [Wed, 17 Mar 2010 23:58:35 +0000 (23:58 +0000)]
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

14 years agoDebug info intrinsic does not intefer during tail call optimization.
Devang Patel [Wed, 17 Mar 2010 23:52:37 +0000 (23:52 +0000)]
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

14 years agoRevert 98745 with respect to the addition of NEONFrm subformats for disassembly.
Johnny Chen [Wed, 17 Mar 2010 23:26:50 +0000 (23:26 +0000)]
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

14 years agoChange coalescer complexity from N^2 to N logN by changing one letter.
Jakob Stoklund Olesen [Wed, 17 Mar 2010 23:21:58 +0000 (23:21 +0000)]
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

14 years agoFixed a bug in the IT mask printing where T means the cond bit in the mask
Johnny Chen [Wed, 17 Mar 2010 23:14:23 +0000 (23:14 +0000)]
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

14 years agoRefines 98745 so that it only contains the patch related to the output of the
Johnny Chen [Wed, 17 Mar 2010 23:01:59 +0000 (23:01 +0000)]
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