Andrew Trick
a2a47d1c50
InitMCProcessor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164066 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:19:12 +00:00
Andrew Trick
12886db4a7
TargetSchedModel API. Implement latency lookup, disabled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:19:08 +00:00
Andrew Trick
5d94082143
comment typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164064 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:19:04 +00:00
Andrew Trick
41be51b72c
TableGen subtarget emitter. Use getSchedClassIdx.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164063 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:19:01 +00:00
Andrew Trick
021ba269b2
TableGen subtarget emitter. Generate resolveSchedClass generated hook for resolving instruction variants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164062 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:58 +00:00
Andrew Trick
db7afac457
TableGen subtarget emitter. Initialize MCSubtargetInfo with the new machine model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164061 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:55 +00:00
Andrew Trick
544c88039f
TableGen subtarget emitter. Format and emit data tables for the new machine model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164060 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:50 +00:00
Andrew Trick
52c3a1d654
TableGen subtarget emitter. Generate data tables for the new machine model.
...
Map the CodeGenSchedule object model onto data tables. The structure
of the data tables is defined in MC, so for convenience we include
MCSchedule.h. The alternative is maintaining a redundant copy of the
table structure definitions. Mapping the object model onto data tables
is sufficiently complicated that it should not be interleaved with
emitting source code. This avoids major problem with the backend for
itinerary generation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164059 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:48 +00:00
Andrew Trick
40096d2693
TableGen subtarget emitter. Emit processor resources for the new machine model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164058 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:45 +00:00
Andrew Trick
bc4ff6e3cf
TableGen subtarget parser: Add getProcResourcesIdx().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164057 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:18:43 +00:00
Jan Wen Voung
b024b7014a
Add some cases to x86 OptimizeCompare to handle DEC and INC, too.
...
While we are setting the earlier def to true, also make it live.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164056 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 22:04:23 +00:00
Manman Ren
566540332f
PGO: preserve branch-weight metadata when simplifying two branches with a common
...
destination in SimplifyCondBranchToCondBranch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164054 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 21:30:40 +00:00
Akira Hatanaka
ff1547890a
Make sure there is enough room for RA. getStackSize needs to be cleaned up but
...
we will do that when we implement the full save/restore.
Patch by Reed Kotler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164051 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 20:02:42 +00:00
Michael Ilseman
8dcc99496d
Increase the static sizes of some SmallSets. finalizeBundle() is very frequently called for some backends, and growing into an std::set is overkill for these numbers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164044 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 18:31:15 +00:00
Michael Ilseman
2b94302433
whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164043 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 18:25:23 +00:00
Michael Liao
bb73002247
Fix PR13859
...
- Preserve the original NOutVT during casting from vector to integer by
extracting vector elements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164042 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 18:05:20 +00:00
Jim Grosbach
9bb938c540
TableGen: Add initializer.
...
Keep GCC's warnings happy. It can't reason out that the state machine won't
ever hit the potentially uninitialized use in OPC_FilterValue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164041 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 18:00:53 +00:00
Bill Wendling
78fff8ec48
s/__llvm_gcov_flush/__gcov_flush/g
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164040 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 17:57:05 +00:00
Benjamin Kramer
2e34b99e59
LLVM_ATTRIBUTE_USED forces emission of a function. To silence unused function warnings use LLVM_ATTRIBUTE_UNUSED.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164036 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 16:46:22 +00:00
Benjamin Kramer
2d1c2a2fb8
NewSROA: Provide a full set of operator< for ByteRanges.
...
MSVC8 won't compile lower_bound if one is missing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164035 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 16:42:36 +00:00
Axel Naumann
3780ad8b99
Fix a few vars that can end up being used without initialization.
...
The cases where no initialization happens should still be checked for logic flaws.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164032 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 14:20:57 +00:00
Silviu Baranga
c8bf0f8662
Removed the VMLxForwarding feature for the Cortex-A15 target.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164030 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 14:10:54 +00:00
Tom Stellard
a52c3acc14
Add a MachinePostDominator pass
...
This is used in the AMDIL and R600 backends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164029 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 14:08:37 +00:00
Sid Manning
9b7ca41062
Add Michael Spencer's iterator class for stepping through relocations. Add method that, given a symbol index, will return the symbol's data.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164026 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 12:27:39 +00:00
Nadav Rotem
a26cadc58d
Disable the protection from escaped allocas in an attempt to find violating passes. This may break the buildbots. I plan to revert it in a few hours.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164024 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 10:21:55 +00:00
Craig Topper
9f9ce61972
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164017 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 07:16:40 +00:00
Craig Topper
001d3dc976
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164016 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 06:59:23 +00:00
Craig Topper
de8091708f
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164015 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 06:43:55 +00:00
Craig Topper
fc601db2ed
Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164014 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 06:31:17 +00:00
Craig Topper
7ffafe4102
Remove a couple unused fields. Not detected by Wunused-private-field because of unimplemented copy constructor and copy assignment operator that make the class look incomplete. Upcoming patch will mark them deleted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164013 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 06:05:39 +00:00
Michael Liao
efd841cdc5
Fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164012 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-17 04:43:39 +00:00
Craig Topper
3fee0fe517
Add include of Compiler.h to fix build bot failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164009 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 21:56:23 +00:00
Craig Topper
daca73f9be
Add includes of Compiler.h to fix build bot failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164008 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 21:50:09 +00:00
Craig Topper
a558d91ced
Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164007 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 21:43:09 +00:00
Craig Topper
f630e49efc
Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164006 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 21:37:56 +00:00
Craig Topper
fbb13471ed
Add LLVM_OVERRIDE and LLVM_FINAL C++11 compatibility macros.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164005 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 20:53:30 +00:00
Chandler Carruth
63392ea3ba
Refactor the SROA visitors for partitioning an alloca and building
...
partition use lists a bit. No functionality changed.
These visitors are actually visiting a tuple of a Use and an offset into
the alloca. However, we use the InstVisitor to handle the dispatch over
the users, and so the Use and Offset are stored in class member
variables and set just before each call to visit(). This is fairly
awkward and makes the functions a bit harder to read, but its the only
real option we have until InstVisitor can be rewritten to use variadic
templates.
However, this pattern shouldn't be followed on the helper member
functions where there is no interface constraint from the visitor. We
already were passing the instruction as a normal parameter rather than
use the Use to get at it, start passing the offset as well. This will
become more important in subsequent patches as the offset will in some
cases change while visiting a single instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164003 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 19:39:50 +00:00
Craig Topper
af8d66ce9a
Add 'virtual' keywoards to output file for overridden functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164002 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 18:25:36 +00:00
Craig Topper
6ffb4024d8
Change unsigned to uint32_t to match base class declaration and other targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164001 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 18:10:23 +00:00
Craig Topper
1d2b45f167
Fix bad comment. No functional change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164000 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 16:48:25 +00:00
Craig Topper
ef2340ef48
Add 'virtual' keywoards to output file for overridden functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163999 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 16:35:22 +00:00
Nadav Rotem
6fc671ca63
Fix the testcase to work on all platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163997 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 07:58:47 +00:00
Craig Topper
ef072c3315
Add explicit virtual keywords for methods that override base class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163996 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 07:39:55 +00:00
Nadav Rotem
638e4c13cb
The PMOVZXWD family of functions had patterns extends narrow vector types to wide vector types.
...
It had patterns for zext-loading and extending. This commit adds patterns for loading a wide type, performing a bitcast,
and extending. This is an odd pattern, but it is commonly used when writing code with intrinsics.
rdar://11897677
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163995 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 07:39:07 +00:00
Andrew Trick
3c0e5c9ece
Guard fields by NDEBUG until they get used in the release build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163993 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 05:55:04 +00:00
Craig Topper
910cf7f712
Tidy up formatting of some elses on a separate line from preceding bracing. No functional change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163992 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 03:00:03 +00:00
Jakob Stoklund Olesen
c722ae7a2b
Add alternative coalescing algorithm under a flag.
...
The live range of an SSA value forms a sub-tree of the dominator tree.
That means the live ranges of two values overlap if and only if the def
of one value lies within the live range of the other.
This can be used to simplify the interference checking a bit: Visit each
def in the two registers about to be joined. Check for interference
against the value that is live in the other register at the def point
only. It is not necessary to scan the set of overlapping live ranges,
this interference check can be done while computing the value mapping
required for the final live range join.
The new algorithm is prepared to handle more complicated conflict
resolution - We can allow overlapping live ranges with different values
as long as the differing lanes are undef or unused in the other
register.
The implementation in this patch doesn't do that yet, it creates code
that is nearly identical to the old algorithm's, except:
- The new stripCopies() function sees through multiple copies while
the old RegistersDefinedFromSameValue() only can handle one.
- There are a few rare cases where the new algorithm can erase an
IMPLICIT_DEF instuction that RegistersDefinedFromSameValue() couldn't
handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163991 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 02:15:36 +00:00
Jakob Stoklund Olesen
2131eb4887
Fix problem when using LiveRangeQuery with block entries.
...
A value that is live in to a basic block should be returned by valueIn()
in LiveRangeQuery(getMBBStartIdx(MBB)), unless it is a PHI-def which
should be returned by valueDefined() instead.
Current code isn't using this functionality. Future code will.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163990 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 02:15:33 +00:00
Craig Topper
644b3840b9
Tidy up trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163988 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 01:20:35 +00:00
Craig Topper
0c08f5d2b9
Remove unneeded header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163987 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-16 01:18:51 +00:00