oota-llvm.git
13 years agoReformat the quote and tag the math stuff with <tt> tags.
Bill Wendling [Wed, 9 Nov 2011 19:33:56 +0000 (19:33 +0000)]
Reformat the quote and tag the math stuff with <tt> tags.

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

13 years agollvm-config: Drop 'backend' pseudo-component. We don't support/qualify the CBE
Daniel Dunbar [Wed, 9 Nov 2011 19:23:15 +0000 (19:23 +0000)]
llvm-config: Drop 'backend' pseudo-component. We don't support/qualify the CBE
enough to have this be useful.

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

13 years agollvm-config-2: Switch to using real library dependency table.
Daniel Dunbar [Wed, 9 Nov 2011 19:14:51 +0000 (19:14 +0000)]
llvm-config-2: Switch to using real library dependency table.
 - Also, fix a refacto that left extra "all" component in list (this is now
   defined in the groups explicitly)
 - Reapply of r143879 now that Make should see needed deps.

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

13 years agoFix typo.
Eric Christopher [Wed, 9 Nov 2011 18:53:37 +0000 (18:53 +0000)]
Fix typo.

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

13 years agobuild/Make: Fix some missing dependencies on the llvm-build generation step.
Daniel Dunbar [Wed, 9 Nov 2011 18:48:22 +0000 (18:48 +0000)]
build/Make: Fix some missing dependencies on the llvm-build generation step.

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

13 years agoAdd comments.
Benjamin Kramer [Wed, 9 Nov 2011 18:16:11 +0000 (18:16 +0000)]
Add comments.

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

13 years agoSpeculatively revert commit 144124 (djg) in the hope that the 32 bit
Duncan Sands [Wed, 9 Nov 2011 14:20:48 +0000 (14:20 +0000)]
Speculatively revert commit 144124 (djg) in the hope that the 32 bit
dragonegg self-host buildbot will recover (it is complaining about object
files differing between different build stages).  Original commit message:

Add a hack to the scheduler to disable pseudo-two-address dependencies in
basic blocks containing calls. This works around a problem in which
these artificial dependencies can get tied up in calling seqeunce
scheduling in a way that makes the graph unschedulable with the current
approach of using artificial physical register dependencies for calling
sequences. This fixes PR11314.

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

13 years agoAdd AVX2 support for vselect of v32i8
Nadav Rotem [Wed, 9 Nov 2011 13:21:28 +0000 (13:21 +0000)]
Add AVX2 support for vselect of v32i8

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

13 years agoSimplify code. No functionality change.
Benjamin Kramer [Wed, 9 Nov 2011 13:19:15 +0000 (13:19 +0000)]
Simplify code. No functionality change.

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

13 years agoTake advantage of the zero byte in StringMap when emitting dwarf stringpool entries.
Benjamin Kramer [Wed, 9 Nov 2011 12:12:04 +0000 (12:12 +0000)]
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries.

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

13 years agoMinor fixes in Makefiles for the OCaml bindings:
Wojciech Matyjewicz [Wed, 9 Nov 2011 12:00:39 +0000 (12:00 +0000)]
Minor fixes in Makefiles for the OCaml bindings:

1. Interface files (.mli) are installed before compiled interface
   files (.cmi) to preserve timestamp relation.
2. install-meta should use $(OcamlDir) instead of $(ObjDir).
3. Declared some targets as .PHONY.

Patch by Christophe Raffalli.

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

13 years agoEnable execution dependency fix pass for YMM registers when AVX2 is enabled. Add...
Craig Topper [Wed, 9 Nov 2011 09:37:21 +0000 (09:37 +0000)]
Enable execution dependency fix pass for YMM registers when AVX2 is enabled. Add AVX2 logical operations to list of replaceable instructions.

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

13 years agounittests/MultiJITTest.cpp: Tweak how to check symbol value for Win32 --enable-shared.
NAKAMURA Takumi [Wed, 9 Nov 2011 08:30:43 +0000 (08:30 +0000)]
unittests/MultiJITTest.cpp: Tweak how to check symbol value for Win32 --enable-shared.

getPointerToNamedFunction might be indirect jump on Win32 --enable-shared.
FF 25 <disp32>: jmp *(pointer to IAT)

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

13 years agoAdd instruction selection for AVX2 integer comparisons.
Craig Topper [Wed, 9 Nov 2011 08:06:13 +0000 (08:06 +0000)]
Add instruction selection for AVX2 integer comparisons.

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

13 years agoAdd AVX2 instruction lowering for add, sub, and mul.
Craig Topper [Wed, 9 Nov 2011 07:28:55 +0000 (07:28 +0000)]
Add AVX2 instruction lowering for add, sub, and mul.

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

13 years agoDon't forget to check FlagNW when determining whether an AddRecExpr will wrap
Nick Lewycky [Wed, 9 Nov 2011 07:11:37 +0000 (07:11 +0000)]
Don't forget to check FlagNW when determining whether an AddRecExpr will wrap
or not. Patch by Brendon Cahoon!

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

13 years agoRemove extra ';'
Devang Patel [Wed, 9 Nov 2011 06:20:49 +0000 (06:20 +0000)]
Remove extra ';'

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

13 years agoRemove the pubnames section, no one consumes it.
Eric Christopher [Wed, 9 Nov 2011 05:24:07 +0000 (05:24 +0000)]
Remove the pubnames section, no one consumes it.

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

13 years agoEnhance verifyLoop so that it can reliably verify that every block in a loop is reach...
Eli Friedman [Wed, 9 Nov 2011 04:16:01 +0000 (04:16 +0000)]
Enhance verifyLoop so that it can reliably verify that every block in a loop is reachable from the loop header.

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

13 years agoUse isa<> instead of dyn_cast<> as suggested by Nick.
John McCall [Wed, 9 Nov 2011 03:26:50 +0000 (03:26 +0000)]
Use isa<> instead of dyn_cast<> as suggested by Nick.
Should've read the patch a bit closer, sorry.

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

13 years agoAdd support for encoding immediates in icmp and fcmp. Hopefully, this will
Chad Rosier [Wed, 9 Nov 2011 03:22:02 +0000 (03:22 +0000)]
Add support for encoding immediates in icmp and fcmp.  Hopefully, this will
remove a fair number of unnecessary materialized constants.
rdar://10412592

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

13 years agoHide cpu name checking in ARMSubtarget.
Evan Cheng [Wed, 9 Nov 2011 01:57:03 +0000 (01:57 +0000)]
Hide cpu name checking in ARMSubtarget.

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

13 years agoCollapse DomainValues across loop back-edges.
Jakob Stoklund Olesen [Wed, 9 Nov 2011 01:06:56 +0000 (01:06 +0000)]
Collapse DomainValues across loop back-edges.

During the initial RPO traversal of the basic blocks, remember the ones
that are incomplete because of back-edges from predecessors that haven't
been visited yet.

After the initial RPO, revisit all those loop headers so the incoming
DomainValues on the back-edges can be properly collapsed.

This will properly fix execution domains on software pipelined code,
like the included test case.

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

13 years agoLink to the live DomainValue after merging.
Jakob Stoklund Olesen [Wed, 9 Nov 2011 00:06:18 +0000 (00:06 +0000)]
Link to the live DomainValue after merging.

When merging two uncollapsed DomainValues, place a link to the active
DomainValue from the passive DomainValue.  This allows old stale
references to the passive DomainValue to be updated to point to the
active DomainValue.

The new resolve() function finds the active DomainValue and updates the
pointer.

This change makes old live-out lists more useful since they may contain
uncollapsed DomainValues that have since been merged into other
DomainValues.

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

13 years agoObject/COFF: Fix PE reading.
Michael J. Spencer [Tue, 8 Nov 2011 23:34:07 +0000 (23:34 +0000)]
Object/COFF: Fix PE reading.

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

13 years agoTrack reference count independently from clear().
Jakob Stoklund Olesen [Tue, 8 Nov 2011 23:26:00 +0000 (23:26 +0000)]
Track reference count independently from clear().

This allows clear() to be called on a DomainValue with references.

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

13 years agoProperly handle Mips MC relocations and lower cpload and cprestore macros to MCInsts.
Bruno Cardoso Lopes [Tue, 8 Nov 2011 22:26:47 +0000 (22:26 +0000)]
Properly handle Mips MC relocations and lower cpload and cprestore macros to MCInsts.

Patch by Jack Carter.

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

13 years agoEmit the compact unwind *if* we have a compact unwind encoding.
Bill Wendling [Tue, 8 Nov 2011 22:23:43 +0000 (22:23 +0000)]
Emit the compact unwind *if* we have a compact unwind encoding.
*headdesk*

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

13 years agoCall release() directly when cleaning up the remaining DomainValues.
Jakob Stoklund Olesen [Tue, 8 Nov 2011 22:05:17 +0000 (22:05 +0000)]
Call release() directly when cleaning up the remaining DomainValues.

There is no need to involve the LiveRegs array and kill() any longer.

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

13 years agoRename all methods to follow style guide.
Jakob Stoklund Olesen [Tue, 8 Nov 2011 21:57:47 +0000 (21:57 +0000)]
Rename all methods to follow style guide.

No functional change.

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

13 years agoHandle reference counts in one function: release().
Jakob Stoklund Olesen [Tue, 8 Nov 2011 21:57:44 +0000 (21:57 +0000)]
Handle reference counts in one function: release().

This new function will decrement the reference count, and collapse a
domain value when the last reference is gone.

This simplifies DomainValue reference counting, and decouples it from
the LiveRegs array.

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

13 years agoAlso add the linkage name to the name accelerator tables if it exists
Eric Christopher [Tue, 8 Nov 2011 21:56:23 +0000 (21:56 +0000)]
Also add the linkage name to the name accelerator tables if it exists
and is different than the normal name.

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

13 years agoAdd a hack to the scheduler to disable pseudo-two-address dependencies in
Dan Gohman [Tue, 8 Nov 2011 21:29:06 +0000 (21:29 +0000)]
Add a hack to the scheduler to disable pseudo-two-address dependencies in
basic blocks containing calls. This works around a problem in which
these artificial dependencies can get tied up in calling seqeunce
scheduling in a way that makes the graph unschedulable with the current
approach of using artificial physical register dependencies for calling
sequences. This fixes PR11314.

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

13 years agoAdd workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ldm or...
Evan Cheng [Tue, 8 Nov 2011 21:21:09 +0000 (21:21 +0000)]
Add workaround for Cortex-M3 errata 602117 by replacing ldrd x, y, [x] with ldm or ldr pairs.

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

13 years agoARMFastISel doesn't support thumb1. Rename isThumb to isThumb2 to reflect this.
Chad Rosier [Tue, 8 Nov 2011 21:12:00 +0000 (21:12 +0000)]
ARMFastISel doesn't support thumb1.  Rename isThumb to isThumb2 to reflect this.
No functional change intended.

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

13 years agoFix code to match comment. Fixes PR11340, a regression from r143209.
Eli Friedman [Tue, 8 Nov 2011 21:08:02 +0000 (21:08 +0000)]
Fix code to match comment.  Fixes PR11340, a regression from r143209.

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

13 years agoClear old DomainValue after merging.
Jakob Stoklund Olesen [Tue, 8 Nov 2011 20:57:04 +0000 (20:57 +0000)]
Clear old DomainValue after merging.

The old value may still be referenced by some live-out list, and we
don't wan't to collapse those instructions twice.

This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC
builds.

<rdar://problem/10413292>

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

13 years agoMC/COFF: Correctly emit the size of an empty string table.
Michael J. Spencer [Tue, 8 Nov 2011 19:52:32 +0000 (19:52 +0000)]
MC/COFF: Correctly emit the size of an empty string table.

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

13 years agoLICM pass now understands invariant load metadata. Nothing generates this yet so...
Pete Cooper [Tue, 8 Nov 2011 19:30:00 +0000 (19:30 +0000)]
LICM pass now understands invariant load metadata.  Nothing generates this yet so it will currently never get used in real tests

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

13 years agoAdd the base ObjC method name to the names lookup table as well.
Eric Christopher [Tue, 8 Nov 2011 19:16:01 +0000 (19:16 +0000)]
Add the base ObjC method name to the names lookup table as well.

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

13 years agoAdding test for machine-licm operating on invariant load instructions
Pete Cooper [Tue, 8 Nov 2011 19:06:53 +0000 (19:06 +0000)]
Adding test for machine-licm operating on invariant load instructions

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

13 years agoLower mem-ops to unaligned i32/i16 load/stores on ARM where supported.
Lang Hames [Tue, 8 Nov 2011 18:56:23 +0000 (18:56 +0000)]
Lower mem-ops to unaligned i32/i16 load/stores on ARM where supported.

Add support for trimming constants to GetDemandedBits. This fixes some funky
constant generation that occurs when stores are expanded for targets that don't
support unaligned stores natively.

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

13 years agoAdded invariant field to the DAG.getLoad method and changed all calls.
Pete Cooper [Tue, 8 Nov 2011 18:42:53 +0000 (18:42 +0000)]
Added invariant field to the DAG.getLoad method and changed all calls.

When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses

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

13 years agoA few more places where we can avoid multiple size queries.
Eric Christopher [Tue, 8 Nov 2011 18:38:40 +0000 (18:38 +0000)]
A few more places where we can avoid multiple size queries.

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

13 years agoDon't evaluate Data.size() on every iteration.
Eric Christopher [Tue, 8 Nov 2011 18:22:25 +0000 (18:22 +0000)]
Don't evaluate Data.size() on every iteration.

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

13 years agoThis patch handles unaligned loads and stores in Mips JIT. Mips backend
Bruno Cardoso Lopes [Tue, 8 Nov 2011 12:47:11 +0000 (12:47 +0000)]
This patch handles unaligned loads and stores in Mips JIT. Mips backend
implements unaligned loads and stores with assembler macro-instructions
ulw, usw, ulh, ulhu, ush, and this patch emits corresponding instructions
instead of these macros. Since each unaligned load/store is expanded
into two corresponding loads/stores where offset for second load/store is
modified by +3 (for words) or +1 (for halfwords).

Patch by Petar Jovanovic and Sasa Stankovic.

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

13 years agoPathProfiling.c: Get rid of using "inline". We may expect compiler shall optimize...
NAKAMURA Takumi [Tue, 8 Nov 2011 12:03:14 +0000 (12:03 +0000)]
PathProfiling.c: Get rid of using "inline". We may expect compiler shall optimize out "static" scope w/o "inline".

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

13 years agoFix the printing of constants. Patch by Stepan Dyatkovskiy!
John McCall [Tue, 8 Nov 2011 06:53:04 +0000 (06:53 +0000)]
Fix the printing of constants.  Patch by Stepan Dyatkovskiy!

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

13 years agoAdd Eero to the list of external projects.
Bill Wendling [Tue, 8 Nov 2011 05:22:54 +0000 (05:22 +0000)]
Add Eero to the list of external projects.

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

13 years agoPPCInstrInfo.cpp: Fix one "unused" warning.
NAKAMURA Takumi [Tue, 8 Nov 2011 04:00:07 +0000 (04:00 +0000)]
PPCInstrInfo.cpp: Fix one "unused" warning.

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

13 years agoruntime/libprofile/PathProfiling.c: Use __inline__ to appease clang -std=gnu89 -pedantic.
NAKAMURA Takumi [Tue, 8 Nov 2011 03:54:40 +0000 (03:54 +0000)]
runtime/libprofile/PathProfiling.c: Use __inline__ to appease clang -std=gnu89 -pedantic.

FIXME: Should configure detect one?

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

13 years agotest/CodeGen/X86/vec_shuffle-39.ll: Add explicit -mtriple=x86_64-linux. Passing packe...
NAKAMURA Takumi [Tue, 8 Nov 2011 03:46:39 +0000 (03:46 +0000)]
test/CodeGen/X86/vec_shuffle-39.ll: Add explicit -mtriple=x86_64-linux. Passing packed value is not compatible on Win32 x64.

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

13 years agotest/CodeGen/X86/vec_shuffle-38.ll: Relax expression for Win32 x64.
NAKAMURA Takumi [Tue, 8 Nov 2011 03:46:32 +0000 (03:46 +0000)]
test/CodeGen/X86/vec_shuffle-38.ll: Relax expression for Win32 x64.

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

13 years agotest/CodeGen/X86/vec_shuffle.ll: Add explicit -mtriple=i686-linux. We may see some...
NAKAMURA Takumi [Tue, 8 Nov 2011 03:46:25 +0000 (03:46 +0000)]
test/CodeGen/X86/vec_shuffle.ll: Add explicit -mtriple=i686-linux. We may see some suboptimal frame (%ebp) emission on certain hosts. Possible [PR11031]

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

13 years agoMake sure to mark vector extload's as expand on ARM. Fixes PR11319.
Eli Friedman [Tue, 8 Nov 2011 01:43:53 +0000 (01:43 +0000)]
Make sure to mark vector extload's as expand on ARM. Fixes PR11319.

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

13 years agoAdd a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get...
Eli Friedman [Tue, 8 Nov 2011 01:25:24 +0000 (01:25 +0000)]
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on.  Fixes PR11318.

Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up.

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

13 years agoCleanup the formatting.
Bill Wendling [Tue, 8 Nov 2011 00:32:45 +0000 (00:32 +0000)]
Cleanup the formatting.

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

13 years agoAdd x86 isel logic and patterns to match movlps from clang generated IR for _mm_loadl...
Evan Cheng [Tue, 8 Nov 2011 00:31:58 +0000 (00:31 +0000)]
Add x86 isel logic and patterns to match movlps from clang generated IR for _mm_loadl_pi(). rdar://10134392, rdar://10050222

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

13 years agoConvert to the new EH model.
Bill Wendling [Tue, 8 Nov 2011 00:23:01 +0000 (00:23 +0000)]
Convert to the new EH model.

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

13 years agoConvert to the new EH model.
Bill Wendling [Tue, 8 Nov 2011 00:17:28 +0000 (00:17 +0000)]
Convert to the new EH model.

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

13 years agoConvert tests to the new EH model.
Bill Wendling [Tue, 8 Nov 2011 00:09:27 +0000 (00:09 +0000)]
Convert tests to the new EH model.

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

13 years agoEnable support for returning i1, i8, and i16. Nothing special todo as it's the
Chad Rosier [Tue, 8 Nov 2011 00:03:32 +0000 (00:03 +0000)]
Enable support for returning i1, i8, and i16.  Nothing special todo as it's the
callee's responsibility to sign or zero-extend the return value.  The additional
test case just checks to make sure the calls are selected (i.e., -fast-isel-abort
doesn't assert).

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

13 years agoAdded missing newline
Pete Cooper [Tue, 8 Nov 2011 00:03:24 +0000 (00:03 +0000)]
Added missing newline

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

13 years agoRevert r144034 while I try to track down a crash.
Eli Friedman [Mon, 7 Nov 2011 23:53:20 +0000 (23:53 +0000)]
Revert r144034 while I try to track down a crash.

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

13 years agoThis code is dead, what with the new EH model and the auto-upgraders in place.
Bill Wendling [Mon, 7 Nov 2011 23:36:48 +0000 (23:36 +0000)]
This code is dead, what with the new EH model and the auto-upgraders in place.
Delete!

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

13 years agoFix test for Windows as well.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 23:10:43 +0000 (23:10 +0000)]
Fix test for Windows as well.

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

13 years agoKill and collapse outstanding DomainValues.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 23:08:21 +0000 (23:08 +0000)]
Kill and collapse outstanding DomainValues.

DomainValues that are only used by "don't care" instructions are now
collapsed to the first possible execution domain after all basic blocks
have been processed.  This typically means the PS domain on x86.

For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are
completely collapsed to the PS domain instead of containing a mix of
execution domains created by isel.

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

13 years agoInstCombine now optimizes vector udiv by power of 2 to shifts
Pete Cooper [Mon, 7 Nov 2011 23:04:49 +0000 (23:04 +0000)]
InstCombine now optimizes vector udiv by power of 2 to shifts

Fixes r8429

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

13 years agoAdd a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get...
Eli Friedman [Mon, 7 Nov 2011 22:51:10 +0000 (22:51 +0000)]
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on.  Fixes PR11318.

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

13 years agoAdd all completed and named types to the dwarf type accelerator tables.
Eric Christopher [Mon, 7 Nov 2011 22:11:16 +0000 (22:11 +0000)]
Add all completed and named types to the dwarf type accelerator tables.

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

13 years agoAdd ISPC to the external projects list.
Bill Wendling [Mon, 7 Nov 2011 22:05:17 +0000 (22:05 +0000)]
Add ISPC to the external projects list.

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

13 years agoUse a reverse post order instead of a DFS order.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 21:59:29 +0000 (21:59 +0000)]
Use a reverse post order instead of a DFS order.

The enterBasicBlock() function is combining live-out values from
predecessor blocks.  The RPO traversal means that more predecessors
have been visited when that happens, only back-edges are missing.

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

13 years agoMove the hash function to using and taking a StringRef.
Eric Christopher [Mon, 7 Nov 2011 21:49:35 +0000 (21:49 +0000)]
Move the hash function to using and taking a StringRef.

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

13 years agoSimple destructor to delete the hash data we created earlier.
Eric Christopher [Mon, 7 Nov 2011 21:49:28 +0000 (21:49 +0000)]
Simple destructor to delete the hash data we created earlier.

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

13 years agoAllow i1 to be promoted to i32 for ARM AAPCS and AAPCS-VFP calling convention as...
Chad Rosier [Mon, 7 Nov 2011 21:43:40 +0000 (21:43 +0000)]
Allow i1 to be promoted to i32 for ARM AAPCS and AAPCS-VFP calling convention as well.

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

13 years agoExtract two methods. No functional change.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 21:40:27 +0000 (21:40 +0000)]
Extract two methods.  No functional change.

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

13 years agoVarious Mips64 floating point instruction patterns.
Akira Hatanaka [Mon, 7 Nov 2011 21:38:58 +0000 (21:38 +0000)]
Various Mips64 floating point instruction patterns.

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

13 years agoAdd definition of the base class for floating point comparison instructions
Akira Hatanaka [Mon, 7 Nov 2011 21:37:33 +0000 (21:37 +0000)]
Add definition of the base class for floating point comparison instructions
and add Mips64's version too.

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

13 years agoAdd code needed for copying between 64-bit integer and floating pointer
Akira Hatanaka [Mon, 7 Nov 2011 21:35:45 +0000 (21:35 +0000)]
Add code needed for copying between 64-bit integer and floating pointer
registers.

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

13 years agoAdd definitions of 64-bit instructions which move data between integer and
Akira Hatanaka [Mon, 7 Nov 2011 21:32:58 +0000 (21:32 +0000)]
Add definitions of 64-bit instructions which move data between integer and
floating pointer registers.

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

13 years agoMBB doesn't need to be a class member.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 21:23:42 +0000 (21:23 +0000)]
MBB doesn't need to be a class member.

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

13 years agoFix pass name after the source was moved.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 21:23:39 +0000 (21:23 +0000)]
Fix pass name after the source was moved.

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

13 years agoSimplify some uses of utohexstr.
Benjamin Kramer [Mon, 7 Nov 2011 21:00:59 +0000 (21:00 +0000)]
Simplify some uses of utohexstr.

As a side effect hex is printed lowercase instead of uppercase now.

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

13 years agoSimplify code. No functionality change.
Benjamin Kramer [Mon, 7 Nov 2011 21:00:43 +0000 (21:00 +0000)]
Simplify code. No functionality change.

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

13 years agoFix test for Linux.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 20:47:23 +0000 (20:47 +0000)]
Fix test for Linux.

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

13 years agoMake sure we don't insert instructions before a landingpad instruction.
Bill Wendling [Mon, 7 Nov 2011 19:38:34 +0000 (19:38 +0000)]
Make sure we don't insert instructions before a landingpad instruction.
<rdar://problem/10405911>

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

13 years agoExpand V_SET0 to xorps by default.
Jakob Stoklund Olesen [Mon, 7 Nov 2011 19:15:58 +0000 (19:15 +0000)]
Expand V_SET0 to xorps by default.

The xorps instruction is smaller than pxor, so prefer that encoding.

The ExecutionDepsFix pass will switch the encoding to pxor and xorpd
when appropriate.

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

13 years agoAdd definition of 64-bit load upper immediate.
Akira Hatanaka [Mon, 7 Nov 2011 19:10:49 +0000 (19:10 +0000)]
Add definition of 64-bit load upper immediate.

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

13 years agoInclude RegSaveAreaSize in the computation of stack size.
Akira Hatanaka [Mon, 7 Nov 2011 19:07:35 +0000 (19:07 +0000)]
Include RegSaveAreaSize in the computation of stack size.

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

13 years agoDefine functions that get or set the size of area on callee's stack frame which
Akira Hatanaka [Mon, 7 Nov 2011 19:06:10 +0000 (19:06 +0000)]
Define functions that get or set the size of area on callee's stack frame which
is used to save va_arg or byval arguments passed in registers.

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

13 years agoUse array_lengthof to compute the number of iterations of a loop.
Akira Hatanaka [Mon, 7 Nov 2011 19:03:40 +0000 (19:03 +0000)]
Use array_lengthof to compute the number of iterations of a loop.

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

13 years agoFix patterns for unaligned 32-bit load. DSLL32 or DSRL32 should be emitted
Akira Hatanaka [Mon, 7 Nov 2011 19:01:49 +0000 (19:01 +0000)]
Fix patterns for unaligned 32-bit load. DSLL32 or DSRL32 should be emitted
when shift amount is larger than 32.

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

13 years agoMake the type of shift amount i32 in order to reduce the number of shift
Akira Hatanaka [Mon, 7 Nov 2011 18:59:49 +0000 (18:59 +0000)]
Make the type of shift amount i32 in order to reduce the number of shift
instruction definitions.

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

13 years agoAdd 64-bit to 32-bit trunc pattern.
Akira Hatanaka [Mon, 7 Nov 2011 18:57:41 +0000 (18:57 +0000)]
Add 64-bit to 32-bit trunc pattern.

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

13 years agoUse StringRef::startswith to do some string comparisons.
Eric Christopher [Mon, 7 Nov 2011 18:53:23 +0000 (18:53 +0000)]
Use StringRef::startswith to do some string comparisons.

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

13 years agoAvoid the use of a local temporary for comment twines.
Eric Christopher [Mon, 7 Nov 2011 18:34:47 +0000 (18:34 +0000)]
Avoid the use of a local temporary for comment twines.

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

13 years agoAllow for the case where the name of the subprogram is "".
Eric Christopher [Mon, 7 Nov 2011 18:10:17 +0000 (18:10 +0000)]
Allow for the case where the name of the subprogram is "".

Fixes a self-host error.

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

13 years agoFix llvm-objdump's MachO mode to not depend on the value returned by RelocationRef...
Owen Anderson [Mon, 7 Nov 2011 17:21:36 +0000 (17:21 +0000)]
Fix llvm-objdump's MachO mode to not depend on the value returned by RelocationRef::getInfo().

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

13 years agoDon't introduce custom nodes after legalization in TargetLowering::BuildSDIV()
Richard Osborne [Mon, 7 Nov 2011 17:09:05 +0000 (17:09 +0000)]
Don't introduce custom nodes after legalization in TargetLowering::BuildSDIV()
and TargetLowering::BuildUDIV(). Fixes PR11283

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

13 years agoRemove unnecessary addition to API. Replace with something much simpler.
Eric Christopher [Mon, 7 Nov 2011 09:38:42 +0000 (09:38 +0000)]
Remove unnecessary addition to API. Replace with something much simpler.

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