Richard Osborne [Tue, 19 Jul 2011 13:28:50 +0000 (13:28 +0000)]
Add intrinsics for the zext / sext instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135476
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Tue, 19 Jul 2011 13:00:40 +0000 (13:00 +0000)]
Add intrinsics for the testct, testwct instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135475
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Osborne [Tue, 19 Jul 2011 12:50:25 +0000 (12:50 +0000)]
Add intrinsics for the peek and endin instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135474
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 19 Jul 2011 08:22:57 +0000 (08:22 +0000)]
Remove bogus test: for all possible inputs of %X, the 'sub nsw' is guaranteed
to perform a signed wrap. Don't rely on any particular handling of that case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135471
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 19 Jul 2011 06:37:02 +0000 (06:37 +0000)]
Introduce MCCodeGenInfo, which keeps information that can affect codegen
(including compilation, assembly). Move relocation model Reloc::Model from
TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 03:42:13 +0000 (03:42 +0000)]
Make EmitAtomic functions return the correct MachineBasicBlocks so that
ExpandISelPseudos::runOnMachineFunction does not visit instructions that have
just been added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135465
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 19 Jul 2011 03:14:58 +0000 (03:14 +0000)]
Do not insert instructions in reverse order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135464
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 19 Jul 2011 02:24:07 +0000 (02:24 +0000)]
Make isLoadExtLegal and isTruncStoreLegal check what the name says. :) This might have some minor effect on CellSPU, but all other targets should be unaffected. Fixing per report from Damien Vincent on llvmdev.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135462
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 01:04:39 +0000 (01:04 +0000)]
Update docs to reflect r135457.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135458
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 01:03:32 +0000 (01:03 +0000)]
Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135457
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 19 Jul 2011 00:28:24 +0000 (00:28 +0000)]
Revert r135423.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135454
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Tue, 19 Jul 2011 00:20:54 +0000 (00:20 +0000)]
Document how to maintain a git-svn clone of the LLVM git repositories.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135453
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:09:25 +0000 (00:09 +0000)]
Micro-opt: Only emit compact unwind if there is a compact unwind encoding to emit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135452
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:06:12 +0000 (00:06 +0000)]
Use the CompactUnwindEncoding from the Frame, if it's defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135451
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:02:51 +0000 (00:02 +0000)]
Add a frame with the compact unwind encoding if it exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135450
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:01:42 +0000 (00:01 +0000)]
Add a method to set compact unwind encoding information in a frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135449
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:00:58 +0000 (00:00 +0000)]
Rename CompactEncoding to CompactUnwindEncoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135448
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 19 Jul 2011 00:00:41 +0000 (00:00 +0000)]
Fixed a bug where the MC subtarget information
wasn't being initialized by the enhanced disassembler,
leading to assertion failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135447
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 19 Jul 2011 00:00:05 +0000 (00:00 +0000)]
Add a field for the compact unwind encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135446
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 18 Jul 2011 23:38:40 +0000 (23:38 +0000)]
Move the compact encoding from the target-specific library to the code-gen
library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135443
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 23:25:34 +0000 (23:25 +0000)]
Revamp our handling of tLDMIA[_UPD] and tSTMIA[_UPD] to avoid having multiple instructions with the same encoding. This resolves another conflict when bringing up the new-style disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135442
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 22:32:12 +0000 (22:32 +0000)]
Eliminate TargetAsmInfo::getCompactUnwindEncoding. This get rid of the
use of TargetFrameLowering in TargetAsmInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135439
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 22:29:13 +0000 (22:29 +0000)]
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
better location welcome).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135438
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 22:14:02 +0000 (22:14 +0000)]
Mark the Darwin assembler workout as isCodeGenOnly, so that it doesn't cause decoding conflicts in the new-style disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135434
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Mon, 18 Jul 2011 21:45:40 +0000 (21:45 +0000)]
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 18 Jul 2011 21:23:42 +0000 (21:23 +0000)]
FileCheck-ize a couple tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135427
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 21:15:03 +0000 (21:15 +0000)]
Compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135426
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 20:57:22 +0000 (20:57 +0000)]
Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo down
to MCRegisterInfo. Also initialize the mapping at construction time.
This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step
towards fixing the layering violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135424
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 18 Jul 2011 20:55:23 +0000 (20:55 +0000)]
During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases.
[take 2]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135423
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 20:32:31 +0000 (20:32 +0000)]
indvars: LinearFunctionTestReplace for non-canonical IVs.
For -disable-iv-rewrite, perform LFTR without generating a new
"canonical" induction variable. Instead find the "best" existing
induction variable for use in the loop exit test and compute the final
value of that IV for use in the new loop exit test. In short,
convert to a simple eq/ne exit test as long as it's cheap to do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135420
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 19:58:59 +0000 (19:58 +0000)]
Do not treat atomic.load.sub differently than other atomic binary intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135418
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 18:52:12 +0000 (18:52 +0000)]
Set mayLoad or mayStore flags for SC and LL in order to prevent LICM from
moving them out of the loop. Previously, stores and loads to a stack frame
object were inserted to accomplish this. Remove the code that was needed to do
this. Patch by Sasa Stankovic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135415
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 18 Jul 2011 18:50:52 +0000 (18:50 +0000)]
Re-apply r135319 with a fix for the constant island pass.
Original Log: Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135414
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 18 Jul 2011 18:47:13 +0000 (18:47 +0000)]
Fix a crash when building 177.mesa for armv6.
When splitting a live range immediately before an LDR_POST instruction
that redefines the address register, make sure to use the correct value
number in leaveIntvBefore.
We need the value number entering the instruction.
<rdar://problem/
9793765>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135413
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 18:44:20 +0000 (18:44 +0000)]
indvars: Added verification that LFTR and other indvars goodness does
not interfere with BackedgeTakenCount computation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135412
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 18 Jul 2011 18:21:35 +0000 (18:21 +0000)]
indvars: Added isHighCostExpansion. Avoid generating extra ops in the
preheader for the sole purpose of LFTR, since LFTR itself is usually not
a clear optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135409
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 18 Jul 2011 18:11:25 +0000 (18:11 +0000)]
Be more smart with VCVTSS2SD. Also place the patterns close to the
definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135407
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Mon, 18 Jul 2011 17:51:40 +0000 (17:51 +0000)]
Add AVX 128-bit sqrt versions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135404
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 18 Jul 2011 17:44:27 +0000 (17:44 +0000)]
Change destination register operands of SC instructions so that unique
virtual registers are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135403
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 18 Jul 2011 17:02:57 +0000 (17:02 +0000)]
Intern all RecTy subclass instances to avoid duplicates.
Make all of the RecTy constructors private, and use get() factory
methods instead. Return singleton instances when it makes sense.
ListTy instance pointers are stored in the element RecTy instance.
BitsRecTy instance pointers, one per length, are stored in a static vector.
Also unique DefInit instances. A Record has a unique DefInit which
has a unique RecordRecTy instance.
This saves some 200k-300k RecTy allocations when parsing ARM.td. It
reduces TableGen's heap usage by almost 50%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 16:35:57 +0000 (16:35 +0000)]
various cleanups noticed by Frits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135396
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 16:04:11 +0000 (16:04 +0000)]
remove pasto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135394
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 12:31:03 +0000 (12:31 +0000)]
Hopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer here before overload resolution, so construct with an explicit length instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135391
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 12:00:32 +0000 (12:00 +0000)]
Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used.
Mostly mechanical with some manual reformatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135390
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Mon, 18 Jul 2011 11:58:53 +0000 (11:58 +0000)]
Introduce the 'makeArrayRef(...)' family of functions, which fills a similar role for ArrayRef<> as std::make_pair() fills for std::pair<>: they return the right instantiation of ArrayRef<T> based on the types of the parameters.
They mostly mirror the ArrayRef constructors, with two exceptions:
* There's no function mirroring the default constructor because it wouldn't have any parameters to deduce the right ArrayRef<T> from.
* There's an explicit SmallVector<T> overload in addition to the SmallVectorImpl<T> overload. Without it, the single-element overload would try to create an ArrayRef<Smallvector<T> > because it's a better match according to the overloading rules. (And both overloads are used in the current tree, so neither is redundant)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135389
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 18 Jul 2011 05:54:06 +0000 (05:54 +0000)]
Delete empty unused file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135379
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 18 Jul 2011 05:31:59 +0000 (05:31 +0000)]
Fix PR10387.
When trying to rematerialize a value before an instruction that has an
early-clobber redefine of the virtual register, make sure to look up the
correct value number.
Early-clobber defs are moved one slot back, so getBaseIndex is needed to
find the used value number.
Bugpoint was unable to reduce the test case for this, see PR10388.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135378
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 04:56:02 +0000 (04:56 +0000)]
document this api change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135376
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 04:54:35 +0000 (04:54 +0000)]
land David Blaikie's patch to de-constify Type, with a few tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 04:52:58 +0000 (04:52 +0000)]
update for recent api changes. I have a hard time believing that this is actually a useful example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135374
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 04:52:09 +0000 (04:52 +0000)]
update this to build with a recent IRBuilder change and de-constify types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135373
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 18 Jul 2011 04:16:27 +0000 (04:16 +0000)]
LLC doesn't need to create MCInstrInfo's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135369
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 01:53:11 +0000 (01:53 +0000)]
add iteration support to TinyPtrVector for clang's use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135367
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 01:43:58 +0000 (01:43 +0000)]
fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
mallocs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135366
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 18 Jul 2011 01:40:02 +0000 (01:40 +0000)]
introduce a new TinyPtrVector class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135365
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 18 Jul 2011 00:00:20 +0000 (00:00 +0000)]
Simplify & microoptimize code. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135364
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Sun, 17 Jul 2011 19:05:00 +0000 (19:05 +0000)]
Minor code cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135362
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 17 Jul 2011 17:35:15 +0000 (17:35 +0000)]
Fix CMake build on Solaris
When building LLVM/Clang on Solaris. The generated makefiles would
have an extraneous semi-colon character in them prior to this change
due to the way the 'CMAKE_CXX_FLAGS' variable was defined. Simply
adjusting the definition by moving the current CMAKE_CXX_FLAGS value
within the quotes solves the problem.
Patch by Art Haas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135361
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 17 Jul 2011 06:01:30 +0000 (06:01 +0000)]
tidy up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135360
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 16 Jul 2011 22:26:27 +0000 (22:26 +0000)]
Silence compiler warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135358
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 16 Jul 2011 20:43:00 +0000 (20:43 +0000)]
Remove unused LoopRanges from RegAllocGreedy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135354
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 16 Jul 2011 20:31:15 +0000 (20:31 +0000)]
Remove "LoopInfo.h" include from BranchProbabilityInfo.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135353
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Sat, 16 Jul 2011 20:23:20 +0000 (20:23 +0000)]
Add MachineBlockFrequency analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135352
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 16 Jul 2011 09:17:43 +0000 (09:17 +0000)]
Revert r135319 in an attempt to get to unbreak testers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135343
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 16 Jul 2011 07:28:35 +0000 (07:28 +0000)]
More minor adjustments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135342
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Sat, 16 Jul 2011 04:18:47 +0000 (04:18 +0000)]
Silence unused variable warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135339
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sat, 16 Jul 2011 02:41:28 +0000 (02:41 +0000)]
Make the disassembler able to disassemble a bunch of instructions with names in the TableGen files containing "64" on x86-32. This includes a bunch of x87 instructions, like fld, and a bunch of SSSE3 instructions on MMX registers like pshufb. Part of PR8873.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135337
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 16 Jul 2011 01:18:53 +0000 (01:18 +0000)]
indvars: fix a pass-sensitivity issue that would hit the SCEVExpander
assertion I added in r135333. Check for the existence of a preheader
before expanding a recurrence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135335
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 16 Jul 2011 01:06:48 +0000 (01:06 +0000)]
indvars: remove ExprToIVMap because it won't be needed by LFTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135334
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 16 Jul 2011 00:59:39 +0000 (00:59 +0000)]
Fix SCEVEXpander to handle arbitrary phi expansion. Includes two
related bug fixes and corresponding assertions for uninitialized data
and missing NULL check. Test cases will be included with the new LFTR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135333
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 16 Jul 2011 00:50:20 +0000 (00:50 +0000)]
Add AVX 128-bit patterns for sint_to_fp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135332
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 16 Jul 2011 00:26:07 +0000 (00:26 +0000)]
Finish propagating %asmtmp->%1 change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135330
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 16 Jul 2011 00:13:30 +0000 (00:13 +0000)]
He said *before* the last split point.
This should unbreak the build-self-4-mingw32 tester. I have a very
complicated test case that I will try to clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135329
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jul 2011 23:18:40 +0000 (23:18 +0000)]
fix rdar://
9776316 - type remapping needed for inline asm blobs,
fixing some objc llvm-test crashes with LTO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135324
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 15 Jul 2011 23:15:45 +0000 (23:15 +0000)]
deconstify getType()'s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135323
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jul 2011 22:51:43 +0000 (22:51 +0000)]
LegalizeDAG doesn't need its own copy of this enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135320
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Jul 2011 22:49:31 +0000 (22:49 +0000)]
Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135319
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jul 2011 22:39:09 +0000 (22:39 +0000)]
Delete LegalizeDAG's own version of isTypeLegal and getTypeAction
and just use the ones from TargetLowering directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135318
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 15 Jul 2011 22:24:33 +0000 (22:24 +0000)]
Fix a couple of things:
1) Make non-legal 256-bit loads to be promoted to v4i64. This lets us
canonize the loads and handle things the same way we use to handle
for 128-bit registers. Despite of what one of the removed comments
explained, the load promotion would not mess with VPERM, it's only a
matter of doing the appropriate bitcasts when this instructions comes
to be introduced. Also make LOAD v8i32 legal.
2) Doing 1) exposed two bugs:
- v4i64 was being promoted to itself for several opcodes (introduced
in r124447 by David Greene) causing endless recursion and the stack to
explode.
- there was no support for allOnes BUILD_VECTORs and ANDNP would fail to
match because it was generating early target constant pools during
lowering.
3) The testcases are already checked-in, doing 1) exposed the
bugs in the current testcases.
4) Tidy up code to be more clear and explicit about AVX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135313
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 15 Jul 2011 22:24:17 +0000 (22:24 +0000)]
Add a few patterns for 256-bit bitcasts. No testcases now, they are
comming together with other tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135312
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jul 2011 22:19:02 +0000 (22:19 +0000)]
Delete an unused variable and a redundant assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135311
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Jul 2011 21:47:57 +0000 (21:47 +0000)]
Extract parts of RAGreedy::splitAroundRegion as SplitKit methods.
This gets rid of some of the gory splitting details in RAGreedy and
makes them available to future SplitKit clients.
Slightly generalize the functionality to support multi-way splitting.
Specifically, SplitEditor::splitLiveThroughBlock() supports switching
between different register intervals in a block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135307
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 15 Jul 2011 21:42:20 +0000 (21:42 +0000)]
Modernize comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135305
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 15 Jul 2011 21:28:39 +0000 (21:28 +0000)]
PR10370: Make sure we know how to relax push correctly on x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135303
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Jul 2011 21:25:44 +0000 (21:25 +0000)]
Use DebugLoc directly to map inlined functions' instructions to respective lexical scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 15 Jul 2011 20:58:38 +0000 (20:58 +0000)]
A real testcase for r135286.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135299
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Jul 2011 20:58:16 +0000 (20:58 +0000)]
Update these tests, no longer outputting names for the variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135298
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Fri, 15 Jul 2011 20:51:06 +0000 (20:51 +0000)]
Fix pointer heuristic. Check whether predicator is ICMP_NE instead of if it is
not isEquality().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135296
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 15 Jul 2011 20:03:30 +0000 (20:03 +0000)]
A couple of minor fixes to the OCaml tutorial. PR10025 and PR10316. Patches by Damien Schoof!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 15 Jul 2011 19:06:58 +0000 (19:06 +0000)]
Add testcase for r135286.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135291
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Jul 2011 18:46:47 +0000 (18:46 +0000)]
Remove VMOVDneon and VMOVQ, which are just aliases for VORR. This continues to simplify the path towards an auto-generated disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135290
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 15 Jul 2011 18:39:24 +0000 (18:39 +0000)]
Teach llvm-objdump to disassemble sections symbol by symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135289
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 15 Jul 2011 18:39:21 +0000 (18:39 +0000)]
ObjectFile: Add a method to check whether a section contains a symbol.
- No ELF or COFF implementation yet, I don't have a way to test that.
Should be straightforward to add though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135288
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Fri, 15 Jul 2011 18:30:43 +0000 (18:30 +0000)]
Have tblgen produce code that tolerates operands that return an invalid match class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135287
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Fri, 15 Jul 2011 18:25:04 +0000 (18:25 +0000)]
Disable loop idiom recognition of memset/memcpy if the function being compiled
is named after a common idiom (i.e., memset/memcpy). Otherwise, we can run into
infinite recursion. Ideally, the user should use the correct -fno-builtin flag,
but in case they don't we should play nicely.
rdar://
9763412
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135286
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Jul 2011 17:48:05 +0000 (17:48 +0000)]
Remove unnecessary duplicate instruction definitions that simply overloaded the type of VEXT. This can be achieved with a Pat definition, and is much more disassembler friendly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135283
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 15 Jul 2011 17:32:45 +0000 (17:32 +0000)]
MachOObjectFile: Get symbol functions ready for 64 bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135282
91177308-0d34-0410-b5e6-
96231b3b80d8
Frits van Bommel [Fri, 15 Jul 2011 17:13:23 +0000 (17:13 +0000)]
No need to explicitly invoke the ArrayRef constructor here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135281
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 15 Jul 2011 16:38:42 +0000 (16:38 +0000)]
Eliminate redundant map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135278
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 15 Jul 2011 12:50:21 +0000 (12:50 +0000)]
Eliminate "const" from extern const to fix breakeage since r135184 on msvc.
MSVC decorates (and distinguishes) "const" in mangler. It brought linkage error between "extern const" declarations and definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135269
91177308-0d34-0410-b5e6-
96231b3b80d8