Stuart Hastings
a901129169
Swap VT and DebugLoc operands of getExtLoad() for consistency with
...
other getNode() methods. Radar 9002173.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125665 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 16:23:55 +00:00
Rafael Espindola
5a287d7a03
Add a debug obj-path option to make it easy to keep the .o produce by LTO.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125663 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 11:19:44 +00:00
Eli Friedman
eb1dc98aa7
Remove outdated README entry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125660 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 07:41:19 +00:00
Eli Friedman
fd51e95171
Remove outdated README entry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125659 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 07:18:18 +00:00
Eli Friedman
c5cb996e9c
Update README entry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125658 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 07:17:44 +00:00
Eric Christopher
7bccf6abdc
Refactor zero folding slightly. Clean up todo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125651 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 04:50:12 +00:00
Rafael Espindola
908159b46a
Gas is very inconsistent about when a relaxation/relocation is needed. Do
...
the right thing and stop trying to copy it. Fixes PR8944.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125648 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 03:25:55 +00:00
Eric Christopher
169e1552e7
The change for PR9190 wasn't quite right. We need to avoid making the
...
transformation if we can't legally create a build vector of the correct
type. Check that we can make the transformation first, and add a TODO to
refactor this code with similar cases.
Fixes: PR9223 and rdar://9000350
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125631 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 01:10:03 +00:00
Eric Christopher
f621e3b6d6
Add testcase for PR9190.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125630 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 01:08:31 +00:00
Rafael Espindola
7768a9dce1
Add support for pushsection and popsection. Patch by Joerg Sonnenberger.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125629 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 01:08:29 +00:00
Evan Cheng
e32effb02f
Remove a duplicated check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125625 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 00:37:02 +00:00
Evan Cheng
5eda282cd1
Some single precision VFP instructions may be executed on NEON pipeline, but not double precision ones.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125624 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-16 00:35:02 +00:00
Nick Lewycky
8a670edf1b
Teach PatternMatch that splat vectors could be floating point as well as
...
integer. Fixes PR9228!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125613 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 23:13:23 +00:00
Roman Divacky
738a00eb86
Add support for parsing [expr].
...
This is submitted by Joerg Sonnenberger and fixes his PR8685.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125595 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 20:43:39 +00:00
Jakob Stoklund Olesen
79bb6dd363
Teach ARMLoadStoreOptimizer to remove kill flags from merged instructions as well.
...
This is necessary to avoid a crash in certain tangled situations where a kill
flag is first correctly moved to a merged instruction, and then needs to be
moved again:
STR %R0, a...
STR %R0<kill>, b...
First becomes:
STR %R0, b...
STM a, %R0<kill>, ...
and then:
STM a, %R0, ...
STM b, %R0<kill>, ...
We can now remove the kill flag from the merged STM when needed. 8960050.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125591 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 19:51:58 +00:00
Devang Patel
d3526eab46
Ignore DBG_VALUE machine instructions while constructing instruction ranges based on location info.
...
Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125577 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 17:56:09 +00:00
Argyrios Kyrtzidis
6e31b9b8c3
Implement a function from PathV2 whose definition is missing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125574 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 17:51:19 +00:00
Devang Patel
fc0569e55a
Move DbgInfoPrinter specific utlities inside DbgInfoPrinter.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125571 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 17:36:11 +00:00
Devang Patel
497acb91dc
Print function info. Patch by Minjang Kim.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125567 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 17:24:56 +00:00
Duncan Sands
ab4c366274
Spelling fix: consequtive -> consecutive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125563 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 09:23:02 +00:00
Argyrios Kyrtzidis
ab8f3fd2e1
When tablegen'ing the clang analyzer checkers:
...
-Use the tablegen class name for the checker class name.
-Mark checker packages as hidden/not hidden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125558 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 07:42:16 +00:00
Nadav Rotem
d9e087bbc3
Fix 9216 - Endless loop in InstCombine pass.
...
The pattern "A&(A^B) -> A & ~B" recreated itself because ~B is
actually a xor -1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125557 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 07:13:48 +00:00
Evan Cheng
326d976eb2
Fix thinko. Cmp can be the first instruction in a MBB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125552 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 05:00:24 +00:00
Devang Patel
e7394ea9c6
Do not forget DebugLoc!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 02:02:30 +00:00
Chris Lattner
da1d660aa2
tidy up a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125546 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 01:56:08 +00:00
Chris Lattner
155ced8092
Minor fixes to tutorial, patch by Benjamin Meyer!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 00:24:32 +00:00
Chris Lattner
04b2f0d99f
fix comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125543 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 00:23:53 +00:00
Chris Lattner
2ca5c8644e
convert ConstantVector::get to use ArrayRef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125537 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 00:14:00 +00:00
Chris Lattner
04df049014
fix some typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125536 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-15 00:06:37 +00:00
Bob Wilson
727961a1a3
Remove unused bitvectors that record ARM callee-saved registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125534 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 23:40:38 +00:00
Jakob Stoklund Olesen
eb9f040f0d
Move more fragments of spill weight calculation into CalcSpillWeights.h
...
Simplify the spill weight calculation a bit by bypassing
getApproximateInstructionCount() and using LiveInterval::getSize() directly.
This changes the computed spill weights, but only by a constant factor in each
function. It should not affect how spill weights compare against each other, and
so it shouldn't affect code generation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125530 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 23:15:38 +00:00
Devang Patel
3fc178ffda
Do not hoist @llvm.dbg.value. Here, @llvm.dbg.value is "referring" a value that is modified inside loop.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125529 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 23:03:23 +00:00
Rafael Espindola
5d618ef7f1
Switch llvm to using comdats. For now always use groups with a single
...
section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125526 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 22:23:49 +00:00
Bob Wilson
56519aac04
PR9139: Specify ARM/Darwin triple for vector-DAGCombine.ll test.
...
The i64_buildvector test in this file relies on the alignment of i64 and
f64 types being the same, which is true for Darwin but not AAPCS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125525 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 22:12:50 +00:00
Evan Cheng
cf75ab5975
Fix PR8854. Track inserted copies to avoid read before write. Sorry, it's hard to reduce a sensible small test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125523 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 21:50:37 +00:00
Bruno Cardoso Lopes
e98d646b11
A fail to match coprocessor number and register number must fail instead of assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125521 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 21:10:33 +00:00
Oscar Fuentes
c08830d46d
Add current binary and source directories to the header search list
...
for all compiler invocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125513 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 20:13:58 +00:00
Chris Lattner
7583190422
revert my ConstantVector patch, it seems to have made the llvm-gcc
...
builders unhappy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125504 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 18:15:46 +00:00
Argyrios Kyrtzidis
50a47e93ce
Add the ClangSACheckersEmitter tablegen backend which will be used for the clang static analyzer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125493 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 17:58:52 +00:00
Rafael Espindola
9de3a0701a
Move broken HasCommonSymbols to ELFWriter.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125490 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 16:51:08 +00:00
Bruno Cardoso Lopes
a2b6e4151b
Fix encoding and add parsing support for the arm/thumb CPS instruction:
...
- Add custom operand matching for imod and iflags.
- Rename SplitMnemonicAndCC to SplitMnemonic since it splits more than CC
from mnemonic.
- While adding ".w" as an operand, don't change "Head" to avoid passing the
wrong mnemonic to ParseOperand.
- Add asm parser tests.
- Add disassembler tests just to make sure it can catch all cps versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125489 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 13:09:44 +00:00
Chris Lattner
283c8caccd
Switch ConstantVector::get to use ArrayRef instead of a pointer+size
...
idiom. Change various clients to simplify their code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125487 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 07:55:32 +00:00
Chris Lattner
2b9bc422a5
add a new ArrayRef class. This is intended to replace the idiom we
...
use in many places where we pass a pointer and size to abstract APIs
that can take C arrays, std::vector, SmallVector, etc. It is to arrays
what StringRef is to strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125486 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 07:35:09 +00:00
Chris Lattner
593051b4e2
fix PR9210 by implementing some type legalization logic for
...
vector fp conversions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125482 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 06:30:45 +00:00
Chris Lattner
463b3c2a99
fix two comment thinkos
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125481 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 06:14:42 +00:00
Nick Lewycky
551b6751a0
Fix typo in comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125480 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 06:14:20 +00:00
Cameron Zwarich
1a73cedca0
Add some statistics to StrongPHIElimination.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125477 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 02:09:18 +00:00
Cameron Zwarich
117be03cc6
Add a statistic to PHIElimination tracking the number of critical edges split.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125476 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-14 02:09:11 +00:00
Chris Lattner
a18da59d40
missed a header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125471 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-13 22:30:09 +00:00
Chris Lattner
0a9481f44f
Enhance ComputeMaskedBits to know that aligned frameindexes
...
have their low bits set to zero. This allows us to optimize
out explicit stack alignment code like in stack-align.ll:test4 when
it is redundant.
Doing this causes the code generator to start turning FI+cst into
FI|cst all over the place, which is general goodness (that is the
canonical form) except that various pieces of the code generator
don't handle OR aggressively. Fix this by introducing a new
SelectionDAG::isBaseWithConstantOffset predicate, and using it
in places that are looking for ADD(X,CST). The ARM backend in
particular was missing a lot of addressing mode folding opportunities
around OR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125470 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-13 22:25:43 +00:00