Devang Patel [Fri, 2 Jul 2010 21:13:23 +0000 (21:13 +0000)]
MDString is already checked earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107516
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Jul 2010 21:07:09 +0000 (21:07 +0000)]
Remove early IT block formation. It's not used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107513
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Jul 2010 20:36:18 +0000 (20:36 +0000)]
- Two-address pass should not assume unfolding is always successful.
- X86 unfolding should check if the instructions being unfolded has memoperands.
If there is no memoperands, then it must assume conservative alignment. If this
would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand
etc. should not unfold the instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107509
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 20:20:50 +0000 (20:20 +0000)]
Remove an unused enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107507
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 2 Jul 2010 20:16:09 +0000 (20:16 +0000)]
Propagate the AlignStack bit in InlineAsm's to the
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Apple gcc inconsistently
sometimes does it for asm blocks. There is no
convenient place to put a bit in either the SDNode or
the MachineInstr form, so I've added an extra operand
to each; unlovely, but it does allow for expansion for
more bits, should we need it. PR 5125. Some
existing testcases are affected.
The operand lists of the SDNode and MachineInstr forms
are indexed with awesome mnemonics, like "2"; I may
fix this someday, but not now. I'm not making it any
worse. If anyone is inspired I think you can find all
the right places from this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 2 Jul 2010 19:54:47 +0000 (19:54 +0000)]
Remove invalid assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107505
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 2 Jul 2010 19:54:45 +0000 (19:54 +0000)]
Handle unindexed instructions in SlotIndices.
SlotIndexes::insertMachineInstrInMaps would crash when trying to insert an
instruction imediately after an unmapped debug value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107504
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 2 Jul 2010 19:54:40 +0000 (19:54 +0000)]
Properly handle debug values during inline spilling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107503
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 2 Jul 2010 19:26:28 +0000 (19:26 +0000)]
beautify output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107500
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 2 Jul 2010 19:08:46 +0000 (19:08 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107498
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 18:43:05 +0000 (18:43 +0000)]
Don't claim to preserve AliasAnalysis. First, this is doesn't actually
have any effect, and second, deleting stores can potentially invalidate
an AliasAnalysis, and there's currently no notification for this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107496
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 18:41:32 +0000 (18:41 +0000)]
Reword the definition of the noalias attribute. The intention is for
the noalias argument on function attributes be usable to model the
C99 restrict keyword on arguments, and to allow AliasAnalysis to
consider a noalias-attributed argument to be an "identified object".
To support this, refactor a new "based on" concept out of the current
pointer aliasing "associated" concept. This "based on" concept is very
similar to (though it is not identical with) the "based on" concept
in C99.
Also, reword the definition of NoAlias to more closely describe the
concept that the optimizer uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107495
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 2 Jul 2010 17:44:57 +0000 (17:44 +0000)]
Rematerialize as much as possible before inserting spills and reloads.
This allows us to recognize the common case where all uses could be
rematerialized, and no stack slot allocation is necessary.
If some values could be fully rematerialized, remove them from the live range
before allocating a stack slot for the rest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107492
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 2 Jul 2010 17:41:59 +0000 (17:41 +0000)]
80-column and trailing whitespace cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107490
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 2 Jul 2010 17:38:34 +0000 (17:38 +0000)]
grammar tweaks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107489
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 2 Jul 2010 17:23:44 +0000 (17:23 +0000)]
Fix incorrect asm-printing of some NEON immediates. Fix weak testcase so
that it checks the immediate values, not just the instructions opcodes.
Radar
8110263.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107487
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 2 Jul 2010 13:37:16 +0000 (13:37 +0000)]
use ArgOperand API (found by my previous commit)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107482
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 2 Jul 2010 13:27:50 +0000 (13:27 +0000)]
back out r107480, it was just testing the waters anyway...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107481
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 2 Jul 2010 13:21:55 +0000 (13:21 +0000)]
[test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes]
second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private
If you get compile errors I strongly urge you to
update your code.
I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.
You have several options to update your code:
- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
low-level accessors if your code is definitely
operand-order agnostic.
If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):
<http://groups.google.com/group/llvm-dev/browse_thread/thread/
64650cf343b28271>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107480
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 01:20:16 +0000 (01:20 +0000)]
Comment a non-obvious member variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107458
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 00:35:34 +0000 (00:35 +0000)]
IndirectBr is not safe to speculatively execute (!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107454
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 2 Jul 2010 00:10:16 +0000 (00:10 +0000)]
Rename CreateReg to CreateRegs, and MakeReg to CreateReg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107451
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 23:10:49 +0000 (23:10 +0000)]
Shrink down SSE3 code by more multiclass refactoring
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107448
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 1 Jul 2010 22:57:11 +0000 (22:57 +0000)]
Prevent test from hanging waiting for input.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107446
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Jul 2010 22:38:24 +0000 (22:38 +0000)]
Make the "linker_private" linkage type emit a non-weak symbol to the file. It
will still be stripped by the linker when it generates the final image.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107440
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 22:33:18 +0000 (22:33 +0000)]
Shrink down SSE3 code by some multiclass refactoring - 1st part
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107438
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 1 Jul 2010 22:26:26 +0000 (22:26 +0000)]
ARM function alignments were off by a power of two. svn 83242 changed
getFunctionAlignment and the corresponding use of that value in the ARM
asm printer, but now we're using the standard asm printer. The result of
this was that function alignments were dropped completely for Thumb functions.
Radar
8143571.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107435
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 1 Jul 2010 21:55:59 +0000 (21:55 +0000)]
Implement the "linker_private_weak" linkage type. This will be used for
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.
For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:
.globl l_objc_msgSend_fixup_alloc
.weak_definition l_objc_msgSend_fixup_alloc
.section __DATA, __objc_msgrefs, coalesced
.align 3
l_objc_msgSend_fixup_alloc:
.quad _objc_msgSend_fixup
.quad L_OBJC_METH_VAR_NAME_1
This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".
Currently only supported on Darwin platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 1 Jul 2010 21:46:41 +0000 (21:46 +0000)]
evil hack to coerce external users (projects)
to update their code to high-level interfaces
If you get compile errors in your project
please update your code according to the
comments.
This is a re-commit of r107396 which causes
compile errors for the indicated usage patterns
instead of link errors (which are less easy to
fix because of missing source location).
If you get compile errors please perform
following functionally equivalent transformations:
- getOperand(0) ---> getCalledValue()
- setOperand(0, V) ---> setCalledFunction(V)
This will make your code more future-proof
and avoid potentially hard-to-debug bugs.
please refer to this thread on llvm-dev:
<http://groups.google.com/group/llvm-dev/browse_thread/thread/
64650cf343b28271>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107432
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Jul 2010 21:38:08 +0000 (21:38 +0000)]
Do not require line number entry for undefined local variable.
This is a regression caused by r106792 and caught by gdb testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107430
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 1 Jul 2010 20:48:51 +0000 (20:48 +0000)]
MC: Fix some stray hunks I didn't intend to commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107428
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 1 Jul 2010 20:41:56 +0000 (20:41 +0000)]
MC: Pass the target instance to the AsmParser constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107426
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 1 Jul 2010 20:20:05 +0000 (20:20 +0000)]
Remove stray comma.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107425
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 1 Jul 2010 20:20:01 +0000 (20:20 +0000)]
MC: Fix an error message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107424
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 20:08:40 +0000 (20:08 +0000)]
Remove context sensitivity concerns from interprocedural-basic-aa, and
make it more aggressive in cases where both pointers are known to live
in the same function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107420
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 1 Jul 2010 20:07:24 +0000 (20:07 +0000)]
MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by Michael
Spencer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107418
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Jul 2010 19:58:05 +0000 (19:58 +0000)]
Preserve debug info for only extracted symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107417
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Jul 2010 19:49:20 +0000 (19:49 +0000)]
Debugging infomration is encoded in llvm IR using metadata. This is designed
such a way that debug info for symbols preserved even if symbols are
optimized away by the optimizer.
Add new special pass to remove debug info for such symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107416
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Jul 2010 18:27:46 +0000 (18:27 +0000)]
If a named mdnode is removed then mark module as changed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107412
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 17:35:02 +0000 (17:35 +0000)]
Move SSE3 Move patterns to a more appropriate section
Add AVX SSE3 packed horizontal and & sub instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107405
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 17:08:18 +0000 (17:08 +0000)]
Add AVX SSE3 packed addsub instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107404
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 1 Jul 2010 15:42:00 +0000 (15:42 +0000)]
back out r107396 for now, it needs another minor change to function as advertised
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107399
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 1 Jul 2010 15:16:35 +0000 (15:16 +0000)]
evil hack to coerce external users (projects)
to update their code to high-level interfaces
If you get compile errors in your project
please update your code according to the
comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107396
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 12:15:30 +0000 (12:15 +0000)]
Temporarily disable on-demand fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 1 Jul 2010 11:26:05 +0000 (11:26 +0000)]
reformulate CallSiteBase::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107392
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 1 Jul 2010 10:41:37 +0000 (10:41 +0000)]
reformulate CallSite::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107390
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 03:57:05 +0000 (03:57 +0000)]
Use FuncInfo's isExportedInst accessor method instead of
doing the work manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107384
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 03:55:39 +0000 (03:55 +0000)]
Rename CreateRegForValue to CreateReg, and change its argument
from a Value to a Type, because it doesn't actually care about
the Value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107383
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 03:49:59 +0000 (03:49 +0000)]
Fast isel no longer needs DeadMachineInstrElim to clean up after it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107381
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 03:49:38 +0000 (03:49 +0000)]
Teach fast-isel to avoid loading a value from memory when it's already
available in a register. This is pretty primitive, but it reduces the
number of instructions in common testcases by 4%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107380
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 02:58:57 +0000 (02:58 +0000)]
Enable on-demand fast-isel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107377
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 02:58:21 +0000 (02:58 +0000)]
Fix X86FastISel's add folding to actually work, and not fall back
to SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107376
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 02:33:39 +0000 (02:33 +0000)]
Add AVX SSE3 replicate and convert instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107375
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 02:27:15 +0000 (02:27 +0000)]
Teach X86FastISel to fold constant offsets and scaled indices in
the same address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107373
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 01:59:43 +0000 (01:59 +0000)]
Reapply r106422, splitting the code for materializing a value out of
SelectionDAGBuilder::getValue into a helper function, with fixes to
use DenseMaps safely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107371
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Jul 2010 01:33:21 +0000 (01:33 +0000)]
Don't use operator[] here, because it's not desirable to insert a default
value if the search fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107368
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 1 Jul 2010 01:20:06 +0000 (01:20 +0000)]
- Add AVX SSE2 Move doubleword and quadword instructions.
- Add encode bits for VEX_W
- All 128-bit SSE 1 & SSE2 instructions that are described
in the .td file now have a AVX encoded form already working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107365
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 1 Jul 2010 01:00:37 +0000 (01:00 +0000)]
Test for the -filelist fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107363
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 1 Jul 2010 01:00:32 +0000 (01:00 +0000)]
Make -filelist work with -linker=c++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107362
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 1 Jul 2010 01:00:27 +0000 (01:00 +0000)]
80-col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107361
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 1 Jul 2010 01:00:22 +0000 (01:00 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107360
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 1 Jul 2010 00:13:04 +0000 (00:13 +0000)]
Add memory operand folding support to InlineSpiller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107355
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 30 Jun 2010 23:03:52 +0000 (23:03 +0000)]
Add support for rematerialization to InlineSpiller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107351
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 30 Jun 2010 22:49:53 +0000 (22:49 +0000)]
Use the catch-all selectors we already found when converting them to use the
correct catch-all value. This saves having to iterate through all of the
selectors in the program again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107345
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 30 Jun 2010 22:22:59 +0000 (22:22 +0000)]
lowerinvoke needs to handle aggregate function args like sjlj eh does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107335
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 30 Jun 2010 22:22:46 +0000 (22:22 +0000)]
build: Update install-clang target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107334
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 30 Jun 2010 22:20:38 +0000 (22:20 +0000)]
Handle array and vector typed parameters in sjljehprepare like we do
structs. rdar://
8145832
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107332
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 30 Jun 2010 21:29:00 +0000 (21:29 +0000)]
Remove all debug info related named mdnodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107323
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 30 Jun 2010 21:27:56 +0000 (21:27 +0000)]
grammar tweak in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107321
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 20:21:12 +0000 (20:21 +0000)]
In ScalarEvolution::forgetValue, eliminate any SCEVUnknown
entries associated with the value being erased in the
folding set map. These entries used to be harmless, because
a SCEVUnknown doesn't store any information about its Value*,
so having a new Value allocated at the old Value's address
wasn't a problem. But now that ScalarEvolution is storing more
information about values, this is no longer safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107316
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 18:49:10 +0000 (18:49 +0000)]
Move MOVD/MODQ code around, creating sections for each of them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107308
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 30 Jun 2010 18:41:20 +0000 (18:41 +0000)]
Some fool committed without testing (or even building) first.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107307
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 18:38:10 +0000 (18:38 +0000)]
Add AVX SSE2 mask creation and conditional store instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107306
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 30 Jun 2010 18:19:08 +0000 (18:19 +0000)]
Remember to track spill slot uses in VirtRegMap when inserting loads and stores.
LocalRewriter::runOnMachineFunction uses this information to mark dead spill
slots.
This means that InlineSpiller now also works for functions that spill.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107302
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 18:06:01 +0000 (18:06 +0000)]
Fix a bug introduced in r107211 where instructions with memory operands are declared as commutable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107300
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 17:27:11 +0000 (17:27 +0000)]
Revert the part of r107257 which introduced new logic for using
nsw and nuw flags from IR Instructions. On further consideration,
this isn't valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107298
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 30 Jun 2010 17:24:28 +0000 (17:24 +0000)]
Rename NextPowerOfTwo to RoundUpToPowerOfTwo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107297
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 30 Jun 2010 17:22:28 +0000 (17:22 +0000)]
Remove an unused variable. The call to getRoot has side-effects, so
this could break something (but doesn't seem to).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107295
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 17:03:03 +0000 (17:03 +0000)]
Add AVX SSE2 packed integer extract/insert instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107293
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 30 Jun 2010 15:29:46 +0000 (15:29 +0000)]
Clarify that the NextPowerOfTwo template is idempotent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107286
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 30 Jun 2010 15:02:37 +0000 (15:02 +0000)]
Rather than giving SmallPtrSetImpl a member field SmallArray which is magically
replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a
pointer to the start of the storage, and have SmallPtrSet pass in the value to use.
This has the disadvantage that SmallPtrSet becomes bigger by one pointer. It has
the advantage that it no longer uses tricky C++ rules, and is clearly correct while
I'm not sure the previous version was. This was inspired by g++-4.6 pointing out
that SmallPtrSetImpl was writing off the end of SmallArray, which it was. Since
SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to
valid memory. But it was writing off the end of the declared array type - sounds
kind of dubious to me, like it sounded dubious to g++-4.6. Maybe g++-4.6 is wrong
and this construct is perfectly valid and correctly compiled by all compilers, but
I think it is better to avoid the whole can of worms by avoiding this construct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 13:45:50 +0000 (13:45 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107282
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 13:03:37 +0000 (13:03 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107280
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 12:55:46 +0000 (12:55 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107279
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 12:42:43 +0000 (12:42 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107278
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 12:40:35 +0000 (12:40 +0000)]
use ArgOperand API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107277
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 12:39:23 +0000 (12:39 +0000)]
use CallSite::arg_end instead of CallInst::op_end
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107276
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 12:38:26 +0000 (12:38 +0000)]
use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107275
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 09:19:23 +0000 (09:19 +0000)]
use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107273
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 09:17:53 +0000 (09:17 +0000)]
use getNumArgOperands instead of getNumOperands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107272
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 09:16:16 +0000 (09:16 +0000)]
use getArgOperand instead of getOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107271
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 09:15:28 +0000 (09:15 +0000)]
use getArgOperand instead of getOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107270
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 30 Jun 2010 09:14:26 +0000 (09:14 +0000)]
use getArgOperand instead of getOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107269
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 07:17:47 +0000 (07:17 +0000)]
Add a testcase for scev-aa's new capability.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107258
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 07:16:37 +0000 (07:16 +0000)]
Improve ScalarEvolution's nsw and nuw preservation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107257
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 06:58:35 +0000 (06:58 +0000)]
When computing a new ConservativeResult, intersect it with
the old one instead of replacing it, to be more precise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107256
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 06:12:16 +0000 (06:12 +0000)]
Rework scev-aa's basic computation so that it doesn't depend
on ScalarEvolution successfully folding and preserving
range information for both A-B and B-A. Now, if it gets
either one, it's sufficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107249
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 30 Jun 2010 06:09:46 +0000 (06:09 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107248
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 04:06:39 +0000 (04:06 +0000)]
Add AVX SSE2 integer unpack instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107246
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 30 Jun 2010 03:47:56 +0000 (03:47 +0000)]
Add AVX SSE2 packed integer shuffle instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107245
91177308-0d34-0410-b5e6-
96231b3b80d8