OSDN Git Service
Bob Wilson [Thu, 27 Jan 2011 23:08:52 +0000 (23:08 +0000)]
Fix a comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124450
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 27 Jan 2011 22:58:34 +0000 (22:58 +0000)]
Use the paths to libffi's header and library even when no custom
location was stated with FFI_INCLUDE_DIR/FFI_LIBRARY_DIR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124449
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Thu, 27 Jan 2011 22:38:56 +0000 (22:38 +0000)]
[AVX] Clean up the code to configure target lowering for AVX. Specify
how to lower more/new operations. This is a prerequisite for adding
additional AVX lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124447
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 27 Jan 2011 21:28:51 +0000 (21:28 +0000)]
Remove a temporary workaround for a lencod miscompile. Depends on the fix in r124442.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124443
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 27 Jan 2011 21:26:43 +0000 (21:26 +0000)]
VirtRegRewriter fix: update kill flags, which are used by the scavenger.
rdar://problem/
8893967: JM/lencod miscompile at -arch armv7 -mthumb -O3
Added ResurrectKill to remove kill flags after we decide to reused a
physical register. And (hopefully) ensure that we call it in all the
right places.
Sorry, I'm not checking in a unit test given that it's a miscompile I
can't reproduce easily with a toy example. Failures in the rewriter
depend on a series of heuristic decisions maked during one of the many
upstream phases in codegen. This case would require coercing regalloc
to generate a couple of rematerialzations in a way that causes the
scavenger to reuse the same register at just the wrong point.
The general way to test this is to implement kill flags
verification. Then we could have a simple, robust compile-only unit
test. That would be worth doing if the whole pass was not about to
disappear. At this point we focus verification work on the next
generation of regalloc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124442
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 27 Jan 2011 21:06:17 +0000 (21:06 +0000)]
Clang: separate the access-control diagnostics from other diagnostics that do not have SFINAE behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124440
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 27 Jan 2011 20:30:54 +0000 (20:30 +0000)]
Unbreak the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124426
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 27 Jan 2011 19:51:31 +0000 (19:51 +0000)]
Expound upon this comparison!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124406
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 27 Jan 2011 19:42:43 +0000 (19:42 +0000)]
Use dyn_cast instead of isa+cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124404
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 27 Jan 2011 19:29:48 +0000 (19:29 +0000)]
Don't show -pedantic, -W and -Wall on the output of
llvm-config --cflags --cxxflags --cppflags
We shouldn't impose those flags on people who use llvm-config for
building their own projects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124399
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 Jan 2011 19:15:01 +0000 (19:15 +0000)]
Speculatively revert r124380.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124397
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 Jan 2011 17:43:53 +0000 (17:43 +0000)]
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes.
Take 2. This includes fix for dragonegg crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124380
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Divacky [Thu, 27 Jan 2011 17:16:37 +0000 (17:16 +0000)]
Add support for specifying register name in cfi-register/offset/def
as well as register number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124379
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Divacky [Thu, 27 Jan 2011 17:14:22 +0000 (17:14 +0000)]
Introduce virtual ParseRegister method in TargetAsmParser.
Create override of this method in X86/ARM/MBlaze.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124378
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Thu, 27 Jan 2011 14:44:55 +0000 (14:44 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124375
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 27 Jan 2011 09:10:42 +0000 (09:10 +0000)]
Add DenseSet::resize for API parity with DenseMap::resize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124370
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 27 Jan 2011 08:38:19 +0000 (08:38 +0000)]
Fix surprising missed optimization in mergefunc where we forgot to consider
that relationships like "i8* null" is equivalent to "i32* null".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124368
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 27 Jan 2011 07:35:27 +0000 (07:35 +0000)]
Don't infinitely recurse! Patch by Marius Wachtler!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124366
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 27 Jan 2011 07:26:15 +0000 (07:26 +0000)]
Avoid modifying the OneClassForEachPhysReg map while iterating over it.
Linear scan regalloc is currently assuming that any register aliased with
a member of a regclass must also be in at least one regclass. That is not
always true. For example, for X86, RIP is in a regclass but IP is not.
If you're unlucky, this can cause a crash by invalidating the iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124365
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 27 Jan 2011 06:01:17 +0000 (06:01 +0000)]
Add a testcase for my last checkin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124358
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 27 Jan 2011 05:44:56 +0000 (05:44 +0000)]
Use the incoming VT not the VT of where we're trying to store to determine
if we can store a value. Also, the exclusion is or, not and.
Fixes rdar://
8920247.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124357
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Thu, 27 Jan 2011 03:20:19 +0000 (03:20 +0000)]
lib/Target/X86/X86ISelDAGToDAG.cpp: __main should be WINCALL64 on Win64.
CALL64 marks %xmm* as dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124354
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Thu, 27 Jan 2011 02:39:27 +0000 (02:39 +0000)]
Try harder to not have unused variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124350
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Thu, 27 Jan 2011 01:47:50 +0000 (01:47 +0000)]
Opt-mode -Wunused-variable cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124346
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 27 Jan 2011 00:13:27 +0000 (00:13 +0000)]
Reapply 124301
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124339
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 Jan 2011 22:21:35 +0000 (22:21 +0000)]
Initialize variable to get rid of clang warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124331
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Wed, 26 Jan 2011 21:56:10 +0000 (21:56 +0000)]
Simplify User::operator delete().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124330
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Jan 2011 21:43:46 +0000 (21:43 +0000)]
Add a MnemonicIsValid method to the asm matcher.
Patch by Bill Wendling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124328
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 21:41:22 +0000 (21:41 +0000)]
Revert 124301.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124327
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Jan 2011 21:26:21 +0000 (21:26 +0000)]
Fix spelling of CouldMatchAmbiguouslyWith method name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124324
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Jan 2011 21:26:19 +0000 (21:26 +0000)]
Whitespace and 80-column fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124323
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 21:12:32 +0000 (21:12 +0000)]
Revert r124302
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124320
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 Jan 2011 20:57:43 +0000 (20:57 +0000)]
Add support for printing out floating point values from the ARM assembly
parser. The parser will always give us a binary representation of the floating
point number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124318
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 26 Jan 2011 19:44:55 +0000 (19:44 +0000)]
Improve the AsmMatcher's ability to handle suboperands.
When an operand class is defined with MIOperandInfo set to a list of
suboperands, the AsmMatcher has so far required that operand to also define
a custom ParserMatchClass, and InstAlias patterns have not been able to
set the individual suboperands separately. This patch removes both of those
restrictions. If a "compound" operand does not override the default
ParserMatchClass, then the AsmMatcher will now parse its suboperands
separately. If an InstAlias operand has the same class as the corresponding
compound operand, then it will be handled as before; but if that check fails,
TableGen will now try to match up a sequence of InstAlias operands with the
corresponding suboperands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124314
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 Jan 2011 19:40:31 +0000 (19:40 +0000)]
Temporarily revert 124275 to see if it brings the dragonegg buildbot back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124312
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 19:14:14 +0000 (19:14 +0000)]
- Do not try to print nameless variable's info.
- Print a summary of breakpoints in the beginning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124308
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Wed, 26 Jan 2011 19:13:22 +0000 (19:13 +0000)]
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a
default implementation for x86, going through the stack in a similr
fashion to how the codegen implements BUILD_VECTOR. Eventually this
will get matched to VINSERTF128 if AVX is available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124307
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 18:55:05 +0000 (18:55 +0000)]
While legalizing SDValues do not drop SDDbgValues, trasfer them to new legal nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124302
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 18:42:32 +0000 (18:42 +0000)]
Process valid SDDbgValues even if the node does not have any order assigned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124301
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 26 Jan 2011 18:20:04 +0000 (18:20 +0000)]
Refactor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124300
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Wed, 26 Jan 2011 15:38:49 +0000 (15:38 +0000)]
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default
implementation of EXTRACT_SUBVECTOR for x86, going through the stack
in a similr fashion to how the codegen implements BUILD_VECTOR.
Eventually this will get matched to VEXTRACTF128 if AVX is available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124292
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 26 Jan 2011 13:53:38 +0000 (13:53 +0000)]
Add encoding testcases for ARM vcvtr variations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124289
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 26 Jan 2011 13:28:14 +0000 (13:28 +0000)]
fix the encoding and add testcases for ARM nop, yield, wfe and wfi instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124288
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Jan 2011 10:08:38 +0000 (10:08 +0000)]
Fix PR9039, a use-after-free in reassociate. The issue was that the
operand being factorized (and erased) could occur several times in Ops,
resulting in freed memory being used when the next occurrence in Ops was
analyzed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124287
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 26 Jan 2011 09:23:19 +0000 (09:23 +0000)]
AttrListPtr has an overloaded operator== which does this for us, we should use
it. No functionality change!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124286
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 26 Jan 2011 09:13:58 +0000 (09:13 +0000)]
Teach mergefunc that intptr_t is the same width as a pointer. We still can't
merge vector<intptr_t>::push_back() and vector<void*>::push_back() because
Enumerate() doesn't realize that "i64* null" and "i8** null" are equivalent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124285
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 26 Jan 2011 08:50:18 +0000 (08:50 +0000)]
There are no vectors of pointer or arrays, so we don't need to check vector
elements for type equivalence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124284
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 26 Jan 2011 08:44:16 +0000 (08:44 +0000)]
APInt has a method for determining whether a number is a power of 2
which is more efficient than countPopulation - use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124283
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 26 Jan 2011 08:40:22 +0000 (08:40 +0000)]
Fix memory corruption. If one of the SCEV creation functions calls another but
doesn't return immediately after then the insert position in UniqueSCEVs will
be out of date. No test because this is a memory corruption issue. Fixes PR9051!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124282
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 Jan 2011 02:58:39 +0000 (02:58 +0000)]
Separate out the constant bonus from the size reduction metrics. Rework
a few loops accordingly. Should be no functional change.
This is a step for more accurate cost/benefit analysis of devirt/inlining
bonuses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124275
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 26 Jan 2011 02:06:22 +0000 (02:06 +0000)]
Add needed braces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124273
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 26 Jan 2011 02:04:09 +0000 (02:04 +0000)]
Target/X86: Tweak win64's tailcall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124272
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 26 Jan 2011 02:03:48 +0000 (02:03 +0000)]
TableGen: PointerLikeRegClass can be accepted to operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124271
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 26 Jan 2011 02:03:37 +0000 (02:03 +0000)]
Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124270
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 26 Jan 2011 01:28:06 +0000 (01:28 +0000)]
lib/Target/X86/X86RegisterInfo.cpp: Fix whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124268
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 26 Jan 2011 01:27:58 +0000 (01:27 +0000)]
lib/Target/X86/X86RegisterInfo.cpp: Fix a typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124267
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 26 Jan 2011 01:09:59 +0000 (01:09 +0000)]
Coding style formatting changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124260
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 26 Jan 2011 00:50:53 +0000 (00:50 +0000)]
Rename member variables to follow the rest of LLVM.
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124257
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Jan 2011 23:27:42 +0000 (23:27 +0000)]
Provide an interface to transfer SDDbgValue from one SDNode to another.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124245
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Tue, 25 Jan 2011 22:05:41 +0000 (22:05 +0000)]
[AVX] Fix a typo in the extract subvector type constraints to specify
the correct number of operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124234
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Jan 2011 21:48:36 +0000 (21:48 +0000)]
Revert 124230. It was causing test failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124233
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Jan 2011 21:27:46 +0000 (21:27 +0000)]
The floating point value is encoded in its binary form as an Imm. Convert it
appropriately so that it prints out the decimal representation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124230
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Jan 2011 21:26:41 +0000 (21:26 +0000)]
Add support for parsing a Real value. It stores the Real value as its binary
encoding. It's up to the individual back-ends to convert it to their preferred
representation when printing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124229
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 25 Jan 2011 19:09:56 +0000 (19:09 +0000)]
Move unnamed_addr after the function arguments on Sabre's request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124209
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Jan 2011 18:09:58 +0000 (18:09 +0000)]
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124203
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Jan 2011 18:09:33 +0000 (18:09 +0000)]
This assertion is too restrictive, it does not apply for dangling dbg value nodes (nodes where dbg.value intrinsic preceds use of the value).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124202
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Tue, 25 Jan 2011 16:16:32 +0000 (16:16 +0000)]
[AVX] Add TableGen classes for vector/subvector type constraints.
This will be used to check patterns referencing a forthcoming
INSERT_SUBVECTOR SDNode and will also be used to check
EXTRACT_SUBVECTOR nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124191
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Jan 2011 15:14:15 +0000 (15:14 +0000)]
In which I discover that zero+zero is zero, d'oh!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124188
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Tue, 25 Jan 2011 14:33:33 +0000 (14:33 +0000)]
Avoid compiler errors when this header file is included first, by adding
a forward declaration of simplify_type<>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124187
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Jan 2011 12:31:43 +0000 (12:31 +0000)]
Turn off this test - the corresponding instsimplify logic has been
disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124185
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Jan 2011 12:15:09 +0000 (12:15 +0000)]
See if this fixes llvm-gcc bootstrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124184
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 25 Jan 2011 09:38:29 +0000 (09:38 +0000)]
According to my auto-simplifier the most common missed simplifications in
optimized code are:
(non-negative number)+(power-of-two) != 0 -> true
and
(x | 1) != 0 -> true
Instcombine knows about the second one of course, but only does it if X|1
has only one use. These fire thousands of times in the testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124183
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 25 Jan 2011 08:56:50 +0000 (08:56 +0000)]
Teach mergefunc how to emit aliases safely again -- but keep it turned it off
for now. It's controlled by the HasGlobalAliases variable which is not attached
to any flag yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124182
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 25 Jan 2011 01:34:31 +0000 (01:34 +0000)]
Reorganize this so that the early exit and special cases come early
rather than interspersed. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124168
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Jan 2011 01:28:33 +0000 (01:28 +0000)]
Don't merge restore with tail call instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124167
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 24 Jan 2011 23:26:31 +0000 (23:26 +0000)]
tblgen/AsmMatcherEmitter: Fix alias handling to honor -match-prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124154
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 24 Jan 2011 22:38:45 +0000 (22:38 +0000)]
Provide correct registers for EH stuff on ARM
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124151
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 24 Jan 2011 22:38:40 +0000 (22:38 +0000)]
Support printing exception section into the current one. This is the case when LSDASection is blank
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124150
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 24 Jan 2011 22:19:14 +0000 (22:19 +0000)]
Perhaps a bit too much vertical whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124148
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 24 Jan 2011 20:53:18 +0000 (20:53 +0000)]
[AVX] Add type checking support for vector/subvector type constraints.
This will be used to check patterns referencing a forthcoming
INSERT_SUBVECTOR SDNode. INSERT_SUBVECTOR in turn is very useful for
matching to VINSERTF128 instructions and complements the already
existing EXTRACT_SUBVECTOR SDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124145
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Jan 2011 20:04:37 +0000 (20:04 +0000)]
Speculatively revert r124138.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124142
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 24 Jan 2011 19:40:38 +0000 (19:40 +0000)]
Jörg Sonnenberger noticed that we were missing this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124139
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Jan 2011 19:24:37 +0000 (19:24 +0000)]
Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124138
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 24 Jan 2011 19:08:15 +0000 (19:08 +0000)]
Temporarily workaround JM/lencod miscompile (SIGSEGV).
rdar://problem/
8893967
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124137
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Jan 2011 18:53:32 +0000 (18:53 +0000)]
Give GetUnderlyingObject a TargetData, to keep it in sync
with BasicAA's DecomposeGEPExpression, which recently began
using a TargetData. This fixes PR8968, though the testcase
is awkward to reduce.
Also, update several off GetUnderlyingObject's users
which happen to have a TargetData handy to pass it in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124134
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 18:36:51 +0000 (18:36 +0000)]
fix PR8928 by clearing a stale map, patch by Jakub Staszak!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124132
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 24 Jan 2011 18:04:33 +0000 (18:04 +0000)]
Testcase for dragonegg commit 124128.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124129
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 24 Jan 2011 18:02:54 +0000 (18:02 +0000)]
Handle strings in section names the same way as gas:
* If the name is a single string, we remove the quotes
* If the name starts without a quote, we include any quotes in the name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124127
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Jan 2011 17:54:18 +0000 (17:54 +0000)]
Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124126
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Jan 2011 17:54:01 +0000 (17:54 +0000)]
Add another rdar number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124125
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 24 Jan 2011 17:27:17 +0000 (17:27 +0000)]
Support/CommandLine: Fix LookupNearestOption to also search extra option names.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124124
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 03:42:46 +0000 (03:42 +0000)]
fix a missing shuffle pattern, PR9009. Patch by Artiom Myaskouvskey!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 03:37:34 +0000 (03:37 +0000)]
merge all the "crash tests" into crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124101
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 03:29:07 +0000 (03:29 +0000)]
fix PR9017, a bug where we'd assert when promoting in unreachable
code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124100
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 03:18:24 +0000 (03:18 +0000)]
fix PR9015, a crash linking recursive metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 02:32:00 +0000 (02:32 +0000)]
this isn't a memset, we do convert dest[i] to one though :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 01:12:18 +0000 (01:12 +0000)]
with recent work, we now optimize this into:
define i32 @foo(i32 %x) nounwind readnone ssp {
entry:
%tobool = icmp eq i32 %x, 0
%tmp5 = select i1 %tobool, i32 2, i32 1
ret i32 %tmp5
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Jan 2011 01:07:11 +0000 (01:07 +0000)]
enhance SRoA to promote allocas that are used by PHI nodes. This often
occurs because instcombine sinks loads and inserts phis. This kicks in
on such apps as 175.vpr, eon, 403.gcc, xalancbmk and a bunch of times in
spec2006 in some app that uses std::deque.
This resolves the last of rdar://
7339113.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124090
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 Jan 2011 22:04:55 +0000 (22:04 +0000)]
Enhance SRoA to promote allocas that are used by selects in some
common cases. This triggers a surprising number of times in SPEC2K6
because min/max idioms end up doing this. For example, code from the
STL ends up looking like this to SRoA:
%202 = load i64* %__old_size, align 8, !tbaa !3
%203 = load i64* %__old_size, align 8, !tbaa !3
%204 = load i64* %__n, align 8, !tbaa !3
%205 = icmp ult i64 %203, %204
%storemerge.i = select i1 %205, i64* %__n, i64* %__old_size
%206 = load i64* %storemerge.i, align 8, !tbaa !3
We can now promote both the __n and the __old_size allocas.
This addresses another chunk of rdar://
7339113, poor codegen on
stringswitch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 23 Jan 2011 21:15:29 +0000 (21:15 +0000)]
teach Value::isDereferenceablePointer that byval arguments are always
dereferencable, noticed by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124085
91177308-0d34-0410-b5e6-
96231b3b80d8