OSDN Git Service
Eric Christopher [Thu, 7 Oct 2010 05:31:49 +0000 (05:31 +0000)]
Use the thumb2 conditional move instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115905
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 7 Oct 2010 05:14:08 +0000 (05:14 +0000)]
Remove in-progress assertion, add TODO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115904
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 7 Oct 2010 04:17:38 +0000 (04:17 +0000)]
Add the header that I accidentally forgot from r115900.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115901
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 7 Oct 2010 04:13:08 +0000 (04:13 +0000)]
Move the pass initialization helper functions into the llvm namespace, and add
a header declaring them all. This is also where we will declare per-library pass-set
initializer functions down the road.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115900
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Oct 2010 01:50:48 +0000 (01:50 +0000)]
Model operand cycles of vldm / vstm; also fixes scheduling itineraries of vldr / vstr, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115898
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 01:37:01 +0000 (01:37 +0000)]
add support for isConvertibleToThreeAddress to ArithBinOpEFLAGS,
allowing us to convert ADD over. deletes 160 lines of .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115897
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 01:26:27 +0000 (01:26 +0000)]
Fix a few issues in ArithBinOpEFLAGS that made it specific to and.
Start using ArithBinOpEFLAGS for OR, XOR, and SUB.
This removes 500 lines from the .td file. Now AND/OR/XOR/SUB are all
defined exactly the same way instead of being close relatives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115896
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 01:10:20 +0000 (01:10 +0000)]
Convert 'and' to single instance of a multipattern
which instantiates the 34 versions of and all in one
swoop. The BaseOpc/BaseOpc2/BaseOpc4 stuff should not
be required, but tblgen's feeble brain explodes when I
use Or4<BaseOpc>.V in the multipattern.
No change in the generated .inc files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115893
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 7 Oct 2010 00:53:56 +0000 (00:53 +0000)]
Allow use of the 16-bit literal move instruction in CMOVs for Thumb2 mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115890
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 00:43:39 +0000 (00:43 +0000)]
add a new BinOpAI class to represent the immediate form that directly acts on EAX.
This does change the generated .inc files to include the implicit use/def of eax.
Since these instructions are only generated by the assembler and disassembler it
doesn't actually matter though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115885
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 7 Oct 2010 00:42:42 +0000 (00:42 +0000)]
Allow use of the 16-bit literal move instruction in CMOVs for ARM mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115884
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 00:35:28 +0000 (00:35 +0000)]
add a bunch of classes for other common patterns.
As usual, no change in generated .inc files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115882
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 7 Oct 2010 00:31:16 +0000 (00:31 +0000)]
Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 00:12:45 +0000 (00:12 +0000)]
Define a new BinOpRI8 class and use it to define the imm8 versions of and.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115880
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 7 Oct 2010 00:07:26 +0000 (00:07 +0000)]
Constrain the offset register to a *_NOSP register class when inserting LEA
instructions.
This unbreaks the machine code verifier and fixes PR8317.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115879
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 00:01:39 +0000 (00:01 +0000)]
add the pattern operator to match to X86TypeInfo, use this to
convert AND64ri32 to use BinOpRI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115878
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Oct 2010 00:01:00 +0000 (00:01 +0000)]
add a common SDPatternOperator base class to SDNode and PatFrag for
stuff that wants to take one or the other. These can both be used
as the operation of a dag in a pattern match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115877
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:56:46 +0000 (23:56 +0000)]
Properly handle GR32_NOSP in X86RegisterInfo::getMatchingSuperRegClass.
This function looks like it is about ready to be generated by TebleGen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115876
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:54:39 +0000 (23:54 +0000)]
Add MachineRegisterInfo::constrainRegClass and use it in MachineCSE.
This function is intended to be used when inserting a machine instruction that
trivially restricts the legal registers, like LEA requiring a GR32_NOSP
argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115875
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 6 Oct 2010 23:54:35 +0000 (23:54 +0000)]
Skip unused registers when verifying LiveIntervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115874
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 23:50:30 +0000 (23:50 +0000)]
Fixed RELEASE_28 tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115872
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 22:46:47 +0000 (22:46 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115860
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Wed, 6 Oct 2010 22:36:46 +0000 (22:36 +0000)]
First in a sequence of ARM/MC/*ELF* specific work.
Lifted the EmitRawText calls to ARMAsmPrinter::emitAttribute()
Added ARMAsmPrinter::emitAttributes() (plural s).
TODO:
.cpu attribute needs to be refactored
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115859
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 6 Oct 2010 22:28:19 +0000 (22:28 +0000)]
Another case of 256 sections not being enough :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115858
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Oct 2010 22:23:20 +0000 (22:23 +0000)]
Appease the clang self-host buildbot by providing a correct instantiation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115857
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 22:01:26 +0000 (22:01 +0000)]
Clean up MOVi32imm and t2MOVi32imm pseudo instruction definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115853
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 21:36:43 +0000 (21:36 +0000)]
Kill of the vestiges of the 'call' Modifier (no longer needed for PLT).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115845
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 21:22:32 +0000 (21:22 +0000)]
Now that VDUPfqf and VDUPfdfare properly pseudos, kill the no-longer-needed
"lane" operand modifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115843
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 21:17:07 +0000 (21:17 +0000)]
Now that VDUPfqf and VDUPfdfare properly pseudos, nuke the special handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115841
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 21:16:16 +0000 (21:16 +0000)]
Change the NEON VDUPfdf and VDUPfqf pseudo-instructions to actually be
pseudo instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115840
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Wed, 6 Oct 2010 21:07:30 +0000 (21:07 +0000)]
Fix libc++ link in release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115837
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 6 Oct 2010 21:02:29 +0000 (21:02 +0000)]
Get binding and visibility info from the the alias, but Type from the symbol
being aliased.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115836
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Oct 2010 21:02:27 +0000 (21:02 +0000)]
Hide analysis group registration behind a macro, just like pass registration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115835
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 6 Oct 2010 20:50:40 +0000 (20:50 +0000)]
Add support for DW_TAG_unspecified_parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115833
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 20:36:55 +0000 (20:36 +0000)]
Add a 'pattern' arg to the ARM PseudoNeonI class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115831
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Wed, 6 Oct 2010 20:36:47 +0000 (20:36 +0000)]
MC: Add missing forward in MCLoggingStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115830
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Wed, 6 Oct 2010 20:36:38 +0000 (20:36 +0000)]
Cleanup Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115829
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 20:18:44 +0000 (20:18 +0000)]
Revert "RequiresUnique" patch. This should be handled at a lower level.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115827
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 6 Oct 2010 20:07:03 +0000 (20:07 +0000)]
Pass initialization functions should take a PassRegistry as a parameter
rather than being fixed to the global registry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115824
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 6 Oct 2010 19:27:21 +0000 (19:27 +0000)]
If a symbol is global, reloc against it even if it is in a mergeable section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115817
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 6 Oct 2010 18:11:50 +0000 (18:11 +0000)]
Remove unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115802
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Oct 2010 16:59:24 +0000 (16:59 +0000)]
Remove compatibilty code for old-style multiple return values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115799
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 6 Oct 2010 16:51:55 +0000 (16:51 +0000)]
target operand flag values aren't a bitmask
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115798
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 6 Oct 2010 16:47:31 +0000 (16:47 +0000)]
Make sure weak symbols are listed after the local ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115795
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 6 Oct 2010 16:23:36 +0000 (16:23 +0000)]
Correctly handle GOTPCREL relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115793
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Oct 2010 16:18:29 +0000 (16:18 +0000)]
ComputeLinearIndex doesn't need its TLI argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115792
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 6 Oct 2010 15:49:14 +0000 (15:49 +0000)]
Constify isReachableFromEntry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115788
91177308-0d34-0410-b5e6-
96231b3b80d8
Tobias Grosser [Wed, 6 Oct 2010 11:43:06 +0000 (11:43 +0000)]
Add missing "-" to the command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115777
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 07:19:18 +0000 (07:19 +0000)]
Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115764
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 07:03:52 +0000 (07:03 +0000)]
Change RequiresMerge to RequiresUnique. It's a better description of what this
fix is trying to accomplish.
This code could still use some polishing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115759
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 6 Oct 2010 06:45:11 +0000 (06:45 +0000)]
No need to check out everything: binutils is enough.
Patch by John Tytgat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115757
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 6 Oct 2010 06:27:31 +0000 (06:27 +0000)]
- Add TargetInstrInfo::getOperandLatency() to compute operand latencies. This
allow target to correctly compute latency for cases where static scheduling
itineraries isn't sufficient. e.g. variable_ops instructions such as
ARM::ldm.
This also allows target without scheduling itineraries to compute operand
latencies. e.g. X86 can return (approximated) latencies for high latency
instructions such as division.
- Compute operand latencies for those defined by load multiple instructions,
e.g. ldm and those used by store multiple instructions, e.g. stm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115755
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 06:16:30 +0000 (06:16 +0000)]
If the destination module all ready has a copy of the global coming from the
source module *and* it must be merged (instead of simply replaced or appended
to), then merge instead of replacing or adding another global.
The ObjC __image_info section was being appended to because of this
failure. This caused a crash because the linker expects the image info section
to be a specific size.
<rdar://problem/
8198537>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115753
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 05:55:42 +0000 (05:55 +0000)]
enhance X86TypeInfo to include information about the encoding and
operand kind for immediates. Use these to define a new BinOpRI
class and switch AND8/16/32ri over to it. AND64ri32 needs some
more refactoring before it can make the switcheroo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115752
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 6 Oct 2010 05:36:01 +0000 (05:36 +0000)]
Update release location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115749
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 05:35:22 +0000 (05:35 +0000)]
add a class for _REV nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115748
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 05:28:38 +0000 (05:28 +0000)]
sink more intelligence into the ITy base class. Now it knows
that i8 operations are even and i16,i32,i64 operations have a
low opcode bit set (they are odd).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115747
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 05:20:57 +0000 (05:20 +0000)]
refactor things a bit, now the REX_W and OpSize prefix bytes are inferred from the type info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115745
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 04:58:43 +0000 (04:58 +0000)]
with tblgen suitably extended, we can now get the load node from typeinfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115744
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 04:55:48 +0000 (04:55 +0000)]
Generalize tblgen's dag parsing logic to handle arbitrary expressions
as the operator of the dag. Specifically, this allows parsing things
like (F.x 4) in addition to just (a 4).
Unfortunately, this runs afoul of an idiom being used by llvmc. It
is using dags like (foo [1,2,3]) to represent a list of stuff being
passed into foo. With this change, this is parsed as a [1,2,3]
subscript on foo instead of being the first argument to the dag.
Cope with this in the short term by requiring a "-llvmc-temp-hack"
argument to tblgen to get the old parsing behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115742
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 04:37:17 +0000 (04:37 +0000)]
rename add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115741
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 04:36:30 +0000 (04:36 +0000)]
filecheckize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115740
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 04:31:40 +0000 (04:31 +0000)]
cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115739
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 6 Oct 2010 02:15:22 +0000 (02:15 +0000)]
lib/System/Win32/Signals.inc: Enable LLVM_DISABLE_CRT_DEBUG also on mingw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115731
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 6 Oct 2010 01:22:42 +0000 (01:22 +0000)]
Provide a fast "get me the target triple from the module" API. This can
drastically reduce the linking time during LTO.
Patch by Shantonu Sen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 00:45:24 +0000 (00:45 +0000)]
lets go all meta and define new X86 type wrappers that declare the associated
gunk that goes along with an MVT (e.g. reg class, preferred load operation,
memory operand)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 00:30:49 +0000 (00:30 +0000)]
introduce a new BinOpRM class and use it to factor AND*rm. This points out
that I need a heavier handed approach to get ultimate factorization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115726
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 00:19:21 +0000 (00:19 +0000)]
remove the !nameconcat tblgen feature. It "shorthand" and only used in 4 places
where !cast is just as short.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115722
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Oct 2010 00:05:18 +0000 (00:05 +0000)]
replace stuff like:
let AsmString = !strconcat(
!strconcat(!strconcat(opc, "${p}"), !strconcat(".", dt)),
!strconcat("\t", asm));
with:
let AsmString = !strconcat(opc, "${p}", ".", dt, "\t", asm);
:)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115720
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 23:58:18 +0000 (23:58 +0000)]
allow !strconcat to take more than two operands to eliminate
!strconcat(!strconcat(!strconcat(!strconcat
Simplify some x86 td files to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115719
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 5 Oct 2010 23:57:26 +0000 (23:57 +0000)]
Use a relocation against the symbol if it is a PLT and the symbol is in another
section. Common because of linkonce sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115718
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 5 Oct 2010 23:50:58 +0000 (23:50 +0000)]
Comment out fastisel debugging message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115717
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 23:43:04 +0000 (23:43 +0000)]
associate the instruction suffix letter with the integer gpr
register class, and use this to simplify use of BinOpRR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115716
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 23:32:05 +0000 (23:32 +0000)]
introduce a new BinOpRR class, and convert 4 and instructions to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115715
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 5 Oct 2010 23:13:24 +0000 (23:13 +0000)]
Random cleanup and make the intermediate register in fptosi a
32-bit fp reg, not 64-bit.
Fixes SingleSource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115711
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:12 +0000 (23:10 +0000)]
Count uses in all nested loops, not just the deepest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115710
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:09 +0000 (23:10 +0000)]
Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysis
reusable, but that is no longer relevant since a split will always replace the
original.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115709
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 23:10:04 +0000 (23:10 +0000)]
dupli always has an interval now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115708
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 23:09:10 +0000 (23:09 +0000)]
Move cmov pseudo instructions to InstrCompiler,
convert all the rest of the cmovs to the multiclass,
with good results:
X86InstrCMovSetCC.td | 598 +--------------------------------------------------
X86InstrCompiler.td | 61 +++++
2 files changed, 77 insertions(+), 582 deletions(-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115707
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 23:00:14 +0000 (23:00 +0000)]
Use #NAME# to have the CMOV multiclass define things with the same names as before
(e.g. CMOVBE16rr instead of CMOVBErr16).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115705
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:59:29 +0000 (22:59 +0000)]
when david added support for #NAME# he didn't update the comments and
tried (but failed) to artificially constrain it to working with #NAME#.
Just allow any # in identifiers, and update the comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115704
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 5 Oct 2010 22:58:16 +0000 (22:58 +0000)]
Another step towards getting rid of static ctors for pass registration: have INITIALIZE_PASS AND INITIALIZE_AG_PASS
expand to an initializeMyPass() function (in additional to the extant static ctors). Eventually, these will be called
from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used
at the moment) will be handed off to a PassRegistry for ownership.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:51:56 +0000 (22:51 +0000)]
enhance tblgen to support anonymous defm's, use this to
simplify the X86 CMOVmr's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115702
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:42:54 +0000 (22:42 +0000)]
convert cmov mr patterns to use a multipattern. Death to redundancy
and verbosity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115701
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 5 Oct 2010 22:26:43 +0000 (22:26 +0000)]
Implement more alias cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:23:58 +0000 (22:23 +0000)]
switch CMOVBE to the multipattern:
21 insertions(+), 53 deletions(-)
Moar change coming before I switch the rest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115697
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:35 +0000 (22:19 +0000)]
We can split around loops with multiple exits now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115696
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:33 +0000 (22:19 +0000)]
Update SplitEditor API to reflect the fact that the original live interval is
never kept after splitting.
Keeping the original interval made sense when the split region doesn't modify
the register, and the original is spilled. We can get the same effect by
detecting reloaded values when spilling around copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115695
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 22:19:29 +0000 (22:19 +0000)]
Intervals are half-open.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115694
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:16:48 +0000 (22:16 +0000)]
fix a bug I introduced in r115669, which ended up with MOV64mr_TC
not getting marked as mayStore. This fixes llvm-gcc bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115693
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 22:01:02 +0000 (22:01 +0000)]
add a multiclass for cmov's, but don't start using it yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115692
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 5 Oct 2010 21:58:12 +0000 (21:58 +0000)]
PSHUFW is in SSE, not SSSE3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115691
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 21:34:29 +0000 (21:34 +0000)]
use a multipattern to define setcc instructions:
X86InstrCMovSetCC.td | 200 ++++++---------------------------------------------
1 file changed, 27 insertions(+), 173 deletions(-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115689
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 5 Oct 2010 21:20:07 +0000 (21:20 +0000)]
256 sections should be enough for anyone...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115687
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 21:18:04 +0000 (21:18 +0000)]
move SETB pseudos into the same place in InstrCompiler.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115686
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 21:09:45 +0000 (21:09 +0000)]
Replace a gross hack (the MOV64ri_alt instruction) with a slightly less
gross hack (having the asmmatcher handle the alias).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115685
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 5 Oct 2010 21:02:45 +0000 (21:02 +0000)]
Don't crash in a strange .size directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115684
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Oct 2010 20:49:15 +0000 (20:49 +0000)]
distribute the rest of the contents of X86Instr64bit.td out to
the right places. X86Instr64bit.td now dies, long live x86-64!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115669
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 20:36:28 +0000 (20:36 +0000)]
When we find a reaching definition, make sure it is visited from all paths by
erasing it from the visited set. That ensures we create the right phi defs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115666
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 5 Oct 2010 20:36:25 +0000 (20:36 +0000)]
Don't use nextIndex to check for live out of instruction.
Insert copy after defining instruction.
Fix LiveIntervalMap::extendTo to properly handle live segments starting before
the current basic block.
Make sure the open live range is extended to the inserted copy's use slot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115665
91177308-0d34-0410-b5e6-
96231b3b80d8