Dan Gohman [Mon, 11 Oct 2010 23:19:01 +0000 (23:19 +0000)]
Fix the pass manager's search order for immutable passes, and make it
stop searching when it has found a match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116262
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 23:16:21 +0000 (23:16 +0000)]
MC machine encoding for simple aritmetic instructions that use a shifted
register operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116259
91177308-0d34-0410-b5e6-
96231b3b80d8
Jason W Kim [Mon, 11 Oct 2010 23:01:44 +0000 (23:01 +0000)]
Second set of ARM/MC/ELF changes.
Added ARM specific ELF section types.
Added AttributesSection to ARMElfTargetObject
First step in unifying .cpu assembly tag with ELF/.o
llc now asserts on actual ELF emission on -filetype=obj :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116257
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 11 Oct 2010 22:30:59 +0000 (22:30 +0000)]
Clang's #include handling apparently doesn't work for libstdc++'s
fenv.h. See PR6907 for details. Work around this in FEnv.h to fix
the seflhost build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116256
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 22:04:38 +0000 (22:04 +0000)]
Unit Tests: Missed this error. MSVC and clang didn't complain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116252
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 11 Oct 2010 22:03:18 +0000 (22:03 +0000)]
Proper VST scheduling itineraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116251
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 22:01:22 +0000 (22:01 +0000)]
Use a sane mechanism for that assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116249
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 21:56:16 +0000 (21:56 +0000)]
System: Add SwapByteOrder and update Support/MathExtras.h to use it.
This time correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116247
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 11 Oct 2010 21:45:03 +0000 (21:45 +0000)]
Replace FindLiveRangeContaining() with getVNInfoAt() in LiveIntervalAnalysis.
This helps hiding the LiveRange class which really should be private.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116244
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 21:41:31 +0000 (21:41 +0000)]
The assert() should reference to machine instr operand number, too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116243
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 21:39:24 +0000 (21:39 +0000)]
Revert "System: Add SwapByteOrder and update Support/MathExtras.h to use it."
This reverts commit 116234.
It compiled just fine with MSVC and clang...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116242
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 21:37:35 +0000 (21:37 +0000)]
We're not going to handle dynamic allocas anywhere else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116240
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 11 Oct 2010 21:34:24 +0000 (21:34 +0000)]
Change explicit search Apple specific code to only reference __eprintf on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116239
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 21:31:22 +0000 (21:31 +0000)]
Make sure to use the machine instruction operand number. It doesn't always
map one-to-one with the CodeGenInstruction operand number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116238
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 21:22:34 +0000 (21:22 +0000)]
Reduce dpendencies for SupportTests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116235
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 21:22:22 +0000 (21:22 +0000)]
System: Add SwapByteOrder and update Support/MathExtras.h to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116234
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 21:20:02 +0000 (21:20 +0000)]
Make sure that the call stack adjustments have default operands. Also
leave custom lowerings for later.
Fixes some nightly tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116232
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 11 Oct 2010 21:08:42 +0000 (21:08 +0000)]
PR8297
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116223
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 11 Oct 2010 20:43:09 +0000 (20:43 +0000)]
PowerPC varargs functions store live-in registers on the stack. Make sure we use
virtual registers for those stores since RegAllocFast requires that each live
physreg only be used once.
This fixes PR8357.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116222
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 20:26:21 +0000 (20:26 +0000)]
Found a bug turning this on by default. Disable again for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116220
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 20:21:21 +0000 (20:21 +0000)]
Remove now non-existent option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116219
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 20:15:02 +0000 (20:15 +0000)]
Fix help text.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116218
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 20:05:22 +0000 (20:05 +0000)]
Change flag from Enable to Disable since we're enabled by default.
Also don't use fast-isel on non-darwin since it's untested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116217
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 19:55:38 +0000 (19:55 +0000)]
Add KillTheDoctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116216
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 19:38:01 +0000 (19:38 +0000)]
trailing whitespace cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116215
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 11 Oct 2010 19:02:04 +0000 (19:02 +0000)]
Fixes bug 8297: i386 cmpxchg8b, missing MachineMemOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116214
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 18:51:51 +0000 (18:51 +0000)]
More binary encoding stuff, taking advantage of the new "by name" operand
matching in tblgen to do the predicate operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116213
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 18:48:18 +0000 (18:48 +0000)]
Turn on arm fast isel by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116212
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 11 Oct 2010 18:25:51 +0000 (18:25 +0000)]
When figuring out which operands match which encoding fields in an instruction,
try to match them by name first. If there is no by-name match, fall back to
assuming they are in order (this was the previous behavior).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116211
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 11 Oct 2010 18:10:36 +0000 (18:10 +0000)]
Properly handle reloading and spilling around partial redefines in
LocalRewriter.
This is a bit of a hack that adds an implicit use operand to model the
read-modify-write nature of a partial redef. Uses and defs are rewritten in
separate passes, and a single operand would never be processed twice.
<rdar://problem/
8518892>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 11 Oct 2010 17:44:22 +0000 (17:44 +0000)]
remove dead prototype, PR8351
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116209
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Mon, 11 Oct 2010 11:36:19 +0000 (11:36 +0000)]
MSVC hangs on compilation of ARMDisassembler.cpp. PR6866 applied to ARM target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116201
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 08:40:05 +0000 (08:40 +0000)]
Copy and pasteo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116198
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 08:38:55 +0000 (08:38 +0000)]
Whitespace cleanup in ARM fast isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116197
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 08:37:26 +0000 (08:37 +0000)]
Add srem libcall support to ARM fast isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116196
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 08:31:54 +0000 (08:31 +0000)]
Add i8 sdiv support for ARM fast isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116195
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 11 Oct 2010 08:27:59 +0000 (08:27 +0000)]
Implement select handling for ARM fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116194
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 11 Oct 2010 05:48:00 +0000 (05:48 +0000)]
tweak comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116192
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 11 Oct 2010 05:44:40 +0000 (05:44 +0000)]
Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116190
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Mon, 11 Oct 2010 05:29:15 +0000 (05:29 +0000)]
X86: Call ulldiv and ftol2 on Windows instead of their libgcc eqivilents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116188
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sun, 10 Oct 2010 23:11:06 +0000 (23:11 +0000)]
X86: MinGW should always use libgcc on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116177
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sun, 10 Oct 2010 22:04:34 +0000 (22:04 +0000)]
X86: Call _alldiv instead of __divdi3 on Windows (excluding cygwin).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116174
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sun, 10 Oct 2010 22:04:20 +0000 (22:04 +0000)]
Fix Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116173
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 10 Oct 2010 18:59:01 +0000 (18:59 +0000)]
force a triple, varargs isn't supported with the SVR4 ABI the buildbot tells me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116170
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 10 Oct 2010 18:36:26 +0000 (18:36 +0000)]
fix the default va_arg expansion (in the realignment case) to not implicitly
truncate the stack pointer to 32-bits on a 64-bit machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 10 Oct 2010 18:34:00 +0000 (18:34 +0000)]
fix the expansion of va_arg instruction on PPC to know the arg
alignment for PPC32/64, avoiding some masking operations.
llvm-gcc expands vaarg inline instead of using the instruction
so it has never hit this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116168
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 10 Oct 2010 18:20:35 +0000 (18:20 +0000)]
clarify that zero sized vectors are illegal, PR8340
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116167
91177308-0d34-0410-b5e6-
96231b3b80d8
Kenneth Uildriks [Sat, 9 Oct 2010 22:06:36 +0000 (22:06 +0000)]
Now using a variant of the existing inlining heuristics to decide whether to create a given specialization of a function in PartialSpecialization. If the total performance bonus across all callsites passing the same constant exceeds the specialization cost, we create the specialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116158
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 9 Oct 2010 21:12:29 +0000 (21:12 +0000)]
Fix dead link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116157
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Oct 2010 16:36:44 +0000 (16:36 +0000)]
Silence compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116156
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 16:04:45 +0000 (16:04 +0000)]
MC-COFF: Fix .bss section size. Fixes PR8335. Patch by NAKAMUTA Takumi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116155
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 9 Oct 2010 15:53:25 +0000 (15:53 +0000)]
Don't test a removed function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116154
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 15:44:36 +0000 (15:44 +0000)]
syntax-highlighting: Fix module asm keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116152
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 15:44:27 +0000 (15:44 +0000)]
MC-COFF: Implement InitSections. Fixes PR8335.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116151
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 11:01:07 +0000 (11:01 +0000)]
MC-COFF: Add COFFAsmParser. Completes PR8343.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116150
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 11:00:50 +0000 (11:00 +0000)]
Fix Whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116149
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 11:00:37 +0000 (11:00 +0000)]
MC-COFF: Assert on non-coff sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116148
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 07:11:04 +0000 (07:11 +0000)]
Add Kate syntax highlighting files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116146
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Oct 2010 04:07:58 +0000 (04:07 +0000)]
Add VLD4 scheduling itineraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116143
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 9 Oct 2010 03:47:55 +0000 (03:47 +0000)]
MC: Move ParseDirectiveELFType into ELFAsmParser. COFF uses .type for something else.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116142
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Oct 2010 01:45:34 +0000 (01:45 +0000)]
Finish vld3 and vld4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116140
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Oct 2010 01:26:12 +0000 (01:26 +0000)]
Complete vld2 instruction itineries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116136
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Oct 2010 01:15:04 +0000 (01:15 +0000)]
Multiply instructions are issued on pipeline 0. They do not need to reserve pipeline 1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116135
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 9 Oct 2010 01:03:04 +0000 (01:03 +0000)]
Correct some load / store instruction itinerary mistakes:
1. Cortex-A8 load / store multiplies can only issue on ALU0.
2. Eliminate A8_Issue, A8_LSPipe will correctly limit the load / store issues.
3. Correctly model all vld1 and vld2 variants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116134
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 9 Oct 2010 00:29:04 +0000 (00:29 +0000)]
Simplify test and move into a generic "crash" ll file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116130
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 9 Oct 2010 00:03:48 +0000 (00:03 +0000)]
Check to make sure that the iterator isn't at the beginning of the basic block
before decrementing. <rdar://problem/
8529919>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 23:59:27 +0000 (23:59 +0000)]
add jit support for the new psuedo instructions I added for
the add/or xform. The JIT isn't mcized yet, boo.
This fixes Olden/voronoi, bh and a ton of other stuff that
uses the jit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116125
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 23:54:01 +0000 (23:54 +0000)]
machine a mutable machineinstr down into emitInstruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116124
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 8 Oct 2010 23:52:16 +0000 (23:52 +0000)]
Fix the store part of this as well. Fixes smg2000.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116123
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Oct 2010 23:42:21 +0000 (23:42 +0000)]
Rename SplitEditor::rewrite to finish() and break it out into a couple of new
functions: computeRemainder and rewrite.
When the remainder breaks up into multiple components, remember to rewrite those
uses as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116121
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Oct 2010 23:01:57 +0000 (23:01 +0000)]
Avoid compiler warning: comparison between signed and unsigned integer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116119
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Oct 2010 22:14:41 +0000 (22:14 +0000)]
Extract method ProcessUses from LocalRewriter::RewriteMBB. Both parent and child
are still way too long, but it's a start.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116116
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 8 Oct 2010 21:50:04 +0000 (21:50 +0000)]
Do not check that the bodies of two defs of same linkonce global are the same.
Such a check does not make any sense in presense of inlining and other compiler-dependent stuff.
This should fix bunch of warnings on mingw32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116113
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 21:45:55 +0000 (21:45 +0000)]
Implement a few more binary encoding bits. Still very early stage proof-of-
concept level stuff at this point, but it is generally working for those
instructions that know how to map the operands.
This patch fills in the register operands for add/sub/or/etc instructions
and adds the conditional execution predicate encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116112
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 21:36:13 +0000 (21:36 +0000)]
Allow << streaming of MCOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116107
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 8 Oct 2010 21:19:28 +0000 (21:19 +0000)]
Classify value numbers into connected components in linear time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116105
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 8 Oct 2010 19:37:38 +0000 (19:37 +0000)]
Call InitSections in llc and clang so that the binaries produced by them
are easier to diff with those produced by llvm-mc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116095
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 8 Oct 2010 19:33:26 +0000 (19:33 +0000)]
Filter out illegal formulae after updating offsets, not before, so that
formulae which become illegal as a result of the offset updating don't
escape.
This is for rdar://
8529692. No testcase yet, because the given cases
hit use-list ordering differences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116093
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Esfahani [Fri, 8 Oct 2010 19:24:18 +0000 (19:24 +0000)]
Recommit 116056, now with the missing file...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116083
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Oct 2010 18:59:19 +0000 (18:59 +0000)]
Don't waste time unfolding simple loads. The unfolded copy won't be hoisted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116081
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 8 Oct 2010 18:42:25 +0000 (18:42 +0000)]
Fix operand latency computation in cases where the definition operand is
implicit. e.g.
%D6<def>, %D7<def> = VLD1q16 %R2<kill>, 0, ..., %Q3<imp-def>
%Q1<def> = VMULv8i16 %Q1<kill>, %Q3<kill>, ...
The real definition indices are 0,1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116080
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 8 Oct 2010 18:31:34 +0000 (18:31 +0000)]
CrashRecovery: Fix raise() override to actually send the right signal, *cough*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116072
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 18:13:57 +0000 (18:13 +0000)]
A few 80 column cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116069
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 18:09:59 +0000 (18:09 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116068
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 17:45:54 +0000 (17:45 +0000)]
Reapply 116059, this time without the fatfingered pasto at the top.
''const'ify getMachineOpValue() and associated helpers.'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116067
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 17:28:40 +0000 (17:28 +0000)]
Reverting 116059. Bots are unhappy with it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116064
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 8 Oct 2010 17:22:42 +0000 (17:22 +0000)]
reverting 116056: win64_params.ll may need to be conditionalized?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116063
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 8 Oct 2010 17:18:54 +0000 (17:18 +0000)]
Line number 0 indicates there is no source line/file name info available for this construct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116061
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 8 Oct 2010 16:52:44 +0000 (16:52 +0000)]
'const'ify getMachineOpValue() and associated helpers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116059
91177308-0d34-0410-b5e6-
96231b3b80d8
Kenneth Uildriks [Fri, 8 Oct 2010 13:57:31 +0000 (13:57 +0000)]
Start separating out code metrics into code size metrics and code performance metrics. Partial Specialization will apply the former to function specializations, and the latter to all callsites that can use a specialization, in order to decide whether to create a specialization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116057
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Esfahani [Fri, 8 Oct 2010 10:31:30 +0000 (10:31 +0000)]
Small patch to restore home register stack space allocation for the Win64 case. Add test case. This code eventually needs to be tighter, since it's always allocating it, even in leaf routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116056
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 8 Oct 2010 06:15:13 +0000 (06:15 +0000)]
Change register allocation order for ARM VFP and NEON registers to put the
callee-saved registers at the end of the lists. Also prefer to avoid using
the low registers that are in register subclasses required by certain
instructions, so that those registers will more likely be available when needed.
This change makes a huge improvement in spilling in some cases. Thanks to
Jakob for helping me realize the problem.
Most of this patch is fixing the testsuite. There are quite a few places
where we're checking for specific registers. I changed those to wildcards
in places where that doesn't weaken the tests. The spill-q.ll and
thumb2-spill-q.ll tests stopped spilling with this change, so I added a bunch
of live values to force spills on those tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 05:12:30 +0000 (05:12 +0000)]
testcase that goes with r116053
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116054
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 05:12:14 +0000 (05:12 +0000)]
fix a subtle bug I introduced in my refactoring, where we stopped preferring
the i8 versions of instructions in some cases. In test6, we started
generating:
cmpq $0, -8(%rsp) ## encoding: [0x48,0x81,0x7c,0x24,0xf8,0x00,0x00,0x00,0x00]
## <MCInst #478 CMP64mi32
## <MCOperand Reg:114>
## <MCOperand Imm:1>
## <MCOperand Reg:0>
## <MCOperand Imm:-8>
## <MCOperand Reg:0>
## <MCOperand Imm:0>>
instead of:
cmpq $0, -8(%rsp) ## encoding: [0x48,0x83,0x7c,0x24,0xf8,0x00]
## <MCInst #479 CMP64mi8
## <MCOperand Reg:114>
## <MCOperand Imm:1>
## <MCOperand Reg:0>
## <MCOperand Imm:-8>
## <MCOperand Reg:0>
## <MCOperand Imm:0>>
Fix this and add some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116053
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 05:05:06 +0000 (05:05 +0000)]
rename test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116052
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 05:04:58 +0000 (05:04 +0000)]
merge tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116051
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 05:02:29 +0000 (05:02 +0000)]
filecheckize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116050
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 03:57:25 +0000 (03:57 +0000)]
reapply: Use the new TB_NOT_REVERSABLE flag instead of special
reapply: reimplement the second half of the or/add optimization. We should now
with no changes. Turns out that one missing "Defs = [EFLAGS]" can upset things
a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116040
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 8 Oct 2010 03:54:52 +0000 (03:54 +0000)]
reapply the patch reverted in r116033:
"Reimplement (part of) the or -> add optimization. Matching 'or' into 'add'"
With a critical fix: the add pseudos clobber EFLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116039
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 8 Oct 2010 03:17:21 +0000 (03:17 +0000)]
Fix Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116038
91177308-0d34-0410-b5e6-
96231b3b80d8