Jim Grosbach [Fri, 5 Nov 2010 22:40:09 +0000 (22:40 +0000)]
Add '.code 32' assembler directive to MC streamers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118309
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:33:53 +0000 (22:33 +0000)]
Hook up the '.thumb_func' directive to the streamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118307
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:11:33 +0000 (22:11 +0000)]
Fix past-o.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118304
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 22:08:08 +0000 (22:08 +0000)]
MC'ize the '.code 16' and '.thumb_func' ARM directives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118301
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 5 Nov 2010 21:57:54 +0000 (21:57 +0000)]
Disallow the certain NEON modified-immediate forms when generating vorr or vbic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118300
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 20:41:12 +0000 (20:41 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118296
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 20:34:24 +0000 (20:34 +0000)]
MC'ize simple ARMConstantValue entry emission (with a FIXME).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118295
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 5 Nov 2010 19:56:38 +0000 (19:56 +0000)]
Put class into an anonymous namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118294
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 5 Nov 2010 19:27:46 +0000 (19:27 +0000)]
Add codegen and encoding support for the immediate form of vbic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118291
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:50:35 +0000 (18:50 +0000)]
Enable MachO writing for ARM/Darwin. Lots of stuff still doesn't work
(relocations, e.g.), but this will allow simple things to flow through.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118289
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:48:58 +0000 (18:48 +0000)]
Allow targets to specify the MachO CPUType/CPUSubtype information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118288
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 18:47:32 +0000 (18:47 +0000)]
syntaxunified directive is a no-op for MachO writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118287
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 17:48:05 +0000 (17:48 +0000)]
Add v5 and v7 ARM CPU subtype values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118281
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 5 Nov 2010 17:37:13 +0000 (17:37 +0000)]
Add FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118280
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 5 Nov 2010 15:20:29 +0000 (15:20 +0000)]
When passing a parameter using the 'byval' mechanism, inline code needs to be used
to perform the copy, which may be of lots of memory [*]. It would be good if the
fall-back code generated something reasonable, i.e. did the copy in a loop, rather
than vast numbers of loads and stores. Add a note about this. Currently target
specific code seems to always kick in so this is more of a theoretical issue rather
than a practical one now that X86 has been fixed.
[*] It's amazing how often people pass mega-byte long arrays by copy...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 5 Nov 2010 07:19:09 +0000 (07:19 +0000)]
CrashRecoveryContext: Add RunSafelyOnThread helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118272
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 4 Nov 2010 21:16:46 +0000 (21:16 +0000)]
When passing a huge parameter using the byval mechanism, a long
sequence of loads and stores was being generated to perform the
copy on the x86 targets if the parameter was less than 4 byte
aligned, causing llc to use up vast amounts of memory and time.
Use a "rep movs" form instead. PR7170.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118260
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 4 Nov 2010 18:45:27 +0000 (18:45 +0000)]
Use arrays instead of constant-sized SmallVectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118257
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 18:17:08 +0000 (18:17 +0000)]
Add 118023 back, but with proper spelling for .uleb128/.sleb128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118254
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 17:04:24 +0000 (17:04 +0000)]
Revert previous patch. Some targets don't support uleb and say
they do :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118250
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 4 Nov 2010 16:32:18 +0000 (16:32 +0000)]
MCize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118249
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 4 Nov 2010 15:01:38 +0000 (15:01 +0000)]
Introduce DIBuilder. It is intended to be a front-end friendly interface to emit debuggging information entries in LLVM IR.
To create debugging information for a pointer, using DIBUilder front-end just needs
DBuilder.CreatePointerType(Ty, Size);
instead of
DebugFactory.CreateDerivedType(llvm::dwarf::DW_TAG_pointer_type,
TheCU, "", getOrCreateMainFile(),
0, Size, 0, 0, 0, OCTy);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118248
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 4 Nov 2010 14:56:34 +0000 (14:56 +0000)]
Add getFile() to get DIFile of a DIType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118247
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 4 Nov 2010 10:49:57 +0000 (10:49 +0000)]
In the calling convention logic, ValVT is always a legal type,
and as such can be represented by an MVT - the more complicated
EVT is not needed. Use MVT for ValVT everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 4 Nov 2010 05:19:35 +0000 (05:19 +0000)]
Fix @llvm.prefetch isel. Selecting between pld / pldw using the first immediate rw. There is currently no intrinsic that matches to pli.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 02:11:18 +0000 (02:11 +0000)]
partition operand processing between aliases and instructions.
Right now the code is partitioned but the behavior is the same.
This should be improved in the near future. This removes some
uses of TheOperandList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118232
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 01:58:23 +0000 (01:58 +0000)]
pull name slicing out of BuildInstructionOperandReference so
it doesn't do any lexical stuff anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 01:55:23 +0000 (01:55 +0000)]
cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 01:42:59 +0000 (01:42 +0000)]
replace SrcOpNum with SrcOpName, eliminating a numering dependency
on the incoming operand list. This also makes the code simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118225
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 4 Nov 2010 01:26:25 +0000 (01:26 +0000)]
System: Add llvm_execute_on_thread, which does what it says.
- Primarily useful for running some code with a specified stack size, when
pthreads are available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118222
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 4 Nov 2010 01:12:30 +0000 (01:12 +0000)]
Add ARM fixup info for load/store label references. Probably will need a bit of
tweaking when we start using it for object file emission or JIT, but it's a
start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118221
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 4 Nov 2010 00:59:42 +0000 (00:59 +0000)]
Add encoding for VSTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 00:57:06 +0000 (00:57 +0000)]
strength reduce some code, resolving a fixme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118219
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Nov 2010 00:43:46 +0000 (00:43 +0000)]
take a big step to making aliases more general and less of a hack:
now matchables contain an explicit list of how to populate each
operand in the result instruction instead of having them somehow
magically be correlated to the input inst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118217
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 4 Nov 2010 00:32:32 +0000 (00:32 +0000)]
Disable fancy splitting during spilling unless -extra-spiller-splits is given.
This way, InlineSpiller does the same amount of splitting as the standard
spiller. Splitting should really be guided by the register allocator, and
doesn't belong in the spiller at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118216
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 23:52:49 +0000 (23:52 +0000)]
Teach ARM Target to use the tblgen support for generating an MC'ized
CodeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118209
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 23:46:01 +0000 (23:46 +0000)]
Add rule to build MC'ized CodeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118207
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 23:38:14 +0000 (23:38 +0000)]
Support generating an MC'ized CodeEmitter directly. Maintain a reference to the
Fixups list for the instruction so the operand encoders can add to it as
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118206
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 3 Nov 2010 23:15:26 +0000 (23:15 +0000)]
Covert VORRIMM to be produced via early target-specific DAG combining, rather than legalization.
This is both the conceptually correct place for it, as well as allowing it to be more aggressive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118204
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 3 Nov 2010 22:44:51 +0000 (22:44 +0000)]
Add support for code generation of the one register with immediate form of vorr.
We could be more aggressive about making this work for a larger range of constants,
but this seems like a good start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118201
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 22:03:20 +0000 (22:03 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118199
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 3 Nov 2010 20:44:42 +0000 (20:44 +0000)]
Just return undef for invalid masks or elts, and since we're doing that,
just do it earlier too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118195
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 3 Nov 2010 20:39:26 +0000 (20:39 +0000)]
Let RegAllocBasic require MachineDominators - they are already available and
splitting needs them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118194
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 3 Nov 2010 20:39:23 +0000 (20:39 +0000)]
Tag debug output as regalloc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118193
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 3 Nov 2010 20:21:17 +0000 (20:21 +0000)]
Optimize generated code for integer materialization a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118192
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Nov 2010 19:47:34 +0000 (19:47 +0000)]
rename Operand -> AsmOperand for clarity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118190
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Nov 2010 18:21:33 +0000 (18:21 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118187
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 3 Nov 2010 18:16:27 +0000 (18:16 +0000)]
Unlike a lot of NEON instructions, vext isn't _actually_ parameterized by element size. Instead,
all of the different element sizes are pseudo instructions that map down to vext.8 underneath, with
the immediate shifted left to reflect the increased element size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118183
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 3 Nov 2010 18:08:41 +0000 (18:08 +0000)]
This test assumes SSE is present; that is not the default
on non-X86 hosts. Hopefully fixes ppc-host buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118182
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 3 Nov 2010 16:24:53 +0000 (16:24 +0000)]
Add codegen patterns for VST1-lane instructions. Radar
8599955.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118176
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 3 Nov 2010 16:24:50 +0000 (16:24 +0000)]
Check for extractelement with a variable operand for the element number.
For NEON we had been assuming this was always an immediate constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118175
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 3 Nov 2010 16:14:16 +0000 (16:14 +0000)]
Rename FindExecutable to PrependMainExecutablePath.
Makes it more clear that it is just a path manipulation function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118174
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 3 Nov 2010 16:14:07 +0000 (16:14 +0000)]
80-col violations, trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118173
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 3 Nov 2010 14:45:05 +0000 (14:45 +0000)]
Rename PointsToLocalMemory to PointsToLocalOrConstantMemory to make
the code more self-documenting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118171
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 3 Nov 2010 12:17:33 +0000 (12:17 +0000)]
Simplify uses of MVT and EVT. An MVT can be compared directly
with a SimpleValueType, while an EVT supports equality and
inequality comparisons with SimpleValueType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118169
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 3 Nov 2010 11:55:03 +0000 (11:55 +0000)]
Fix a comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118168
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 3 Nov 2010 11:35:31 +0000 (11:35 +0000)]
Inside the calling convention logic LocVT is always a simple
value type, so there is no point in passing it around using
an EVT. Use the simpler MVT everywhere. Rather than trying
to propagate this information maximally in all the code that
using the calling convention stuff, I chose to do a mainly
low impact change instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118167
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 3 Nov 2010 09:36:40 +0000 (09:36 +0000)]
If we have an undef mask our Elt will be -1 for our access, handle
this by using an undef as a pointer.
Fixes rdar://
8625016
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118164
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 3 Nov 2010 08:16:50 +0000 (08:16 +0000)]
Fix typo, pointed out by Trevor Harmon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118163
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Nov 2010 06:34:55 +0000 (06:34 +0000)]
Fix preload instruction isel. Only v7 supports pli, and only v7 with mp extension supports pldw. Add subtarget attribute to denote mp extension support and legalize illegal ones to nothing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118160
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Nov 2010 05:14:24 +0000 (05:14 +0000)]
Add support to match @llvm.prefetch to pld / pldw / pli. rdar://
8601536.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118152
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 3 Nov 2010 04:57:44 +0000 (04:57 +0000)]
Put the PC encoding in the correct bit position.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118151
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 3 Nov 2010 04:29:11 +0000 (04:29 +0000)]
Invert these branches by default, it makes assembly comparisons a little
easier to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118148
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 3 Nov 2010 01:49:29 +0000 (01:49 +0000)]
The MC code couldn't handle ARM LDR instructions with negative offsets:
vldr.64 d1, [r0, #-32]
The problem was with how the addressing mode 5 encodes the offsets. This change
makes sure that the way offsets are handled in addressing mode 5 is consistent
throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue"
method into an "Imm12" and "addressing mode 5" version. But not to worry! The
majority of the duplicated code has been unified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118144
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 3 Nov 2010 01:47:46 +0000 (01:47 +0000)]
Fix DAGCombiner to avoid going into an infinite loop when it
encounters (and:i64 (shl:i64 (load:i64), 1), 0xffffffff).
This fixes rdar://
8606584.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118143
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 01:35:15 +0000 (01:35 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118141
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 01:11:15 +0000 (01:11 +0000)]
Remove the no longer used 'Modifier' optional operand to the ARM
printOperand() asm printer helper functions. rdar://
8425198
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118140
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 01:07:48 +0000 (01:07 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118139
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 3 Nov 2010 01:01:43 +0000 (01:01 +0000)]
Break ARM addrmode4 (load/store multiple base address) into its constituent
parts. Represent the operation mode as an optional operand instead.
rdar://
8614429
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118137
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Nov 2010 00:45:17 +0000 (00:45 +0000)]
Two sets of changes. Sorry they are intermingled.
1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to
"optimize for latency". Call instructions don't have the right latency and
this is more likely to use introduce spills.
2. Fix if-converter cost function. For ARM, it should use instruction latencies,
not # of micro-ops since multi-latency instructions is completely executed
even when the predicate is false. Also, some instruction will be "slower"
when they are predicated due to the register def becoming implicit input.
rdar://
8598427
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118135
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 3 Nov 2010 00:40:22 +0000 (00:40 +0000)]
Modify scheduling itineraries to correct instruction latencies (not operand
latencies) of loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118134
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 3 Nov 2010 00:38:40 +0000 (00:38 +0000)]
Factor code out of APInt to form a isUIntN helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118133
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Nov 2010 00:30:29 +0000 (00:30 +0000)]
fix typo, patch by Trevor Harmon (PR8537)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118131
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 3 Nov 2010 00:24:33 +0000 (00:24 +0000)]
Print an error as one big string instead of breaking it up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118130
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 3 Nov 2010 00:09:12 +0000 (00:09 +0000)]
Delete unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118128
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 3 Nov 2010 00:01:23 +0000 (00:01 +0000)]
Remove several unhelpful checks for isValid from sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118127
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 2 Nov 2010 23:59:09 +0000 (23:59 +0000)]
Make sure we're only storing a single bit here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:57:05 +0000 (23:57 +0000)]
per a suggestion by Frits van Bommel, mark all MBlaze Pseudo
instructions as isCodeGenOnly in the parent class instead of
sprinkling it throughout the .td files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118125
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:55:24 +0000 (23:55 +0000)]
chase owen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118124
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:50:17 +0000 (23:50 +0000)]
tweak this to pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118122
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 2 Nov 2010 23:47:29 +0000 (23:47 +0000)]
Revert r118097 to fix buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118121
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:44:50 +0000 (23:44 +0000)]
temporarily xfail this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118120
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:40:41 +0000 (23:40 +0000)]
Completely reject instructions that have an operand in their
ins/outs list that isn't specified by their asmstring. Previously
the asmmatcher would just force a 0 register into it, which clearly
isn't right. Mark a bunch of ARM instructions that use this as
isCodeGenOnly. Some of them are clearly pseudo instructions (like
t2TBB) others use a weird hasExtraSrcRegAllocReq thing that will
either need to be removed or the asmmatcher will need to be taught
about it (someday).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118119
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 2 Nov 2010 23:40:28 +0000 (23:40 +0000)]
Tweak the opt -O2 / opt -O3 inliner thresholds to be the same as llvm-gcc and
clang are using.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118118
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 2 Nov 2010 23:40:26 +0000 (23:40 +0000)]
Let the -inline-threshold command line argument take precedence over the
threshold given to createFunctionInliningPass().
Both opt -O3 and clang would silently ignore the -inline-threshold option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118117
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 23:19:55 +0000 (23:19 +0000)]
Don't try to enforce MAXPATHLEN in sys::Path for Unix. OS's can check
limits on their own.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118113
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 23:18:43 +0000 (23:18 +0000)]
make MatchableInfo::Validate reject instructions (like LDR_PRE in ARM)
that have complicated tying going on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118112
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 23:16:26 +0000 (23:16 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118110
91177308-0d34-0410-b5e6-
96231b3b80d8
John Thompson [Tue, 2 Nov 2010 23:01:44 +0000 (23:01 +0000)]
Inline asm mult-alt constraint tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118107
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 22:56:51 +0000 (22:56 +0000)]
Fix a copy+pasto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118106
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 22:55:34 +0000 (22:55 +0000)]
Avoid manipulating paths in fixed-sized arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Nov 2010 22:55:03 +0000 (22:55 +0000)]
rewrite EmitConvertToMCInst to iterate over the MCInst operands,
filling them in one at a time. Previously this iterated over the
asmoperands, which left the problem of "holes". The new approach
simplifies things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118104
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Nov 2010 22:53:11 +0000 (22:53 +0000)]
Obsessive formatting changes. No functionality impact.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118103
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 22:50:10 +0000 (22:50 +0000)]
Simplify this code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118102
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Nov 2010 22:46:04 +0000 (22:46 +0000)]
Omit unused parameter name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118099
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Nov 2010 22:44:12 +0000 (22:44 +0000)]
Simplify the EncodeInstruction method now that a lot of the special case stuff
is handled with the MC encoder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118098
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 2 Nov 2010 22:41:42 +0000 (22:41 +0000)]
Since these fields are not exactly equivalent to the encoded field, rename them to something with semantic meaning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118097
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 2 Nov 2010 22:41:19 +0000 (22:41 +0000)]
Use '\0' instead of 0 for nul character constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118096
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 2 Nov 2010 22:31:46 +0000 (22:31 +0000)]
Rename getAddrModeImm12OpValue to getAddrModeImmOpValue and expand it to work
with immediates up to 16-bits in size. The same logic is applied to other LDR
encodings, e.g. VLDR, but which use a different immediate bit width (8-bits in
VLDR's case). Removing the "12" allows it to be more generic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118094
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 2 Nov 2010 22:28:01 +0000 (22:28 +0000)]
Rename encoder methods to match naming convention.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118093
91177308-0d34-0410-b5e6-
96231b3b80d8