| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
The latency based scheduling could induce spills in some cases.
llvm-svn: 190177
|
| |
|
|
|
|
|
|
| |
Allow subtargets to customize the generic scheduling strategy.
This is convenient for targets that don't need to add new heuristics
by specializing the strategy.
llvm-svn: 190176
|
| |
|
|
| |
llvm-svn: 190170
|
| |
|
|
| |
llvm-svn: 190169
|
| |
|
|
|
|
| |
The if above it ensures the property anyway.
llvm-svn: 190168
|
| |
|
|
|
|
| |
There's no 'B3' in the example.
llvm-svn: 190167
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Occasionally DAGCombiner can spot that a SETCC operation is completely
redundant and reduce it to "all true" or "all false". If this happens to a
vector, the value produced has to take account of what a normal comparison
would have produced, which may be an all-1s bitmask.
The fix in SelectionDAG.cpp is tested, however, as far as I can see the code in
TargetLowering.cpp is possibly unreachable and almost certainly irrelevant when
triggered so there are no tests. However, I believe it's still clearly the
right change and may save someone else some hassle if it suddenly becomes
reachable. So I'm doing it anyway.
llvm-svn: 190147
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ptr_to_member.
We introduce a new class DITypeRef that represents a reference to a DIType.
It wraps around a Value*, which can be either an identifier in MDString
or an actual MDNode. The class has a helper function "resolve" that
finds the actual MDNode for a given DITypeRef.
We specialize getFieldAs to return a field that is a reference to a
DIType. To correctly access the base type field of ptr_to_member,
getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef.
Also add a typedef for DITypeIdentifierMap and a helper
generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep
a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually
populate the map.
Verifier is updated accordingly.
llvm-svn: 190081
|
| |
|
|
|
|
|
|
| |
we're proposing it for DWARF5.
No functional change intended.
llvm-svn: 190074
|
| |
|
|
| |
llvm-svn: 190064
|
| |
|
|
|
|
|
|
|
| |
Fast register pressure tracking currently only takes effect during
bottom up scheduling. Forcing this is a bit faster and simpler for
targets that don't have many scheduling constraints and don't need
top-down scheduling.
llvm-svn: 190014
|
| |
|
|
|
|
|
|
| |
without a limiting factor.
Update all testcases accordingly.
llvm-svn: 190002
|
| |
|
|
|
|
| |
Needs testcase updates.
llvm-svn: 190000
|
| |
|
|
| |
llvm-svn: 189999
|
| |
|
|
| |
llvm-svn: 189997
|
| |
|
|
| |
llvm-svn: 189995
|
| |
|
|
| |
llvm-svn: 189994
|
| |
|
|
| |
llvm-svn: 189993
|
| |
|
|
| |
llvm-svn: 189992
|
| |
|
|
|
|
|
|
|
|
| |
too small.
If the instruction window is < NumRegs/2, pressure tracking is not
likely to be effective. The scheduler has to process a very large
number of tiny blocks. We want this to be fast.
llvm-svn: 189991
|
| |
|
|
| |
llvm-svn: 189990
|
| |
|
|
| |
llvm-svn: 189989
|
| |
|
|
| |
llvm-svn: 189988
|
| |
|
|
|
|
|
|
| |
Register pressure tracking is half the complexity of the
scheduler. It's useful to be able to turn it off for compile time and
performance comparisons.
llvm-svn: 189987
|
| |
|
|
| |
llvm-svn: 189977
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
dead and the rest of the compatibility should be done on a dwarf-N level.""
This reverts commit r189913.
Talked with Eric on IRC. I am going to XFAIL the failing test since it
is using what Eric described as "the member hack" which was needed on
that old GDB.
Sorry for the noise!
llvm-svn: 189914
|
| |
|
|
|
|
|
|
|
|
|
|
| |
the rest of the compatibility should be done on a dwarf-N level."
This reverts commit r189903.
This commit broke the phase 1 buildbot for a while.
http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RAincremental/builds/6684
llvm-svn: 189913
|
| |
|
|
|
|
| |
the rest of the compatibility should be done on a dwarf-N level.
llvm-svn: 189903
|
| |
|
|
|
|
| |
in the module. Add a FIXME with a comment about darwin's ld.
llvm-svn: 189902
|
| |
|
|
|
|
| |
hashing the contents of DW_FORM_data1 on top of a type with attributes.
llvm-svn: 189862
|
| |
|
|
| |
llvm-svn: 189861
|
| |
|
|
|
|
|
|
| |
This won't affect the kinds of hashes we test for as we actually
do hashing based on form and attribute. Change the fission-hash
testcase one last time to handle DW_AT_comp_dir.
llvm-svn: 189840
|
| |
|
|
|
|
|
|
| |
There was one case that we could hit a DebugValue where I didn't think
to check. DebugValues are evil. No checkinable test case, sorry. It's
an obvious fix.
llvm-svn: 189717
|
| |
|
|
|
|
| |
Remove redundant or bug-prone LiveInterval APIs.
llvm-svn: 189685
|
| |
|
|
|
|
|
| |
This removes all expensive pressure tracking logic from the scheduling
critical path of node comparison.
llvm-svn: 189643
|
| |
|
|
|
|
| |
Return true for LRGs that end at EarlyClobber or Register slots.
llvm-svn: 189642
|
| |
|
|
|
|
|
| |
Only compare pressure within the same set. When multiple sets are
affected, we prioritize the most constrained set.
llvm-svn: 189641
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
liveness later.
Created SUPressureDiffs array to hold the per node PDiff computed during DAG building.
Added a getUpwardPressureDelta API that will soon replace the old
one. Compute PressureDelta here from the precomputed PressureDiffs.
Updating for liveness will come next.
llvm-svn: 189640
|
| |
|
|
| |
llvm-svn: 189635
|
| |
|
|
|
|
| |
any maintained consumers of it on that platform.
llvm-svn: 189631
|
| |
|
|
| |
llvm-svn: 189630
|
| |
|
|
|
|
| |
This should be much more clear now. It's still disabled pending testing.
llvm-svn: 189597
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revert unintentional commit (of an unreviewed change).
Original commit message:
Add getUnrollingPreferences to TTI
Allow targets to customize the default behavior of the generic loop unrolling
transformation. This will be used by the PowerPC backend when targeting the A2
core (which is in-order with a deep pipeline), and using more aggressive
defaults is important.
llvm-svn: 189566
|
| |
|
|
|
|
|
|
|
| |
Allow targets to customize the default behavior of the generic loop unrolling
transformation. This will be used by the PowerPC backend when targeting the A2
core (which is in-order with a deep pipeline), and using more aggressive
defaults is important.
llvm-svn: 189565
|
| |
|
|
|
|
|
| |
This uses the TargetSubtargetInfo::useAA() function to control the defaults of
the -combiner-alias-analysis and -combiner-global-alias-analysis options.
llvm-svn: 189564
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
There are several optional (off-by-default) features in CodeGen that can make
use of alias analysis. These features are important for generating code for
some kinds of cores (for example the (in-order) PPC A2 core). This adds a
useAA() function to TargetSubtargetInfo to allow these features to be enabled
by default on a per-subtarget basis.
Here is the first use of this function: To control the default of the
-enable-aa-sched-mi feature.
llvm-svn: 189563
|
| |
|
|
| |
llvm-svn: 189526
|
| |
|
|
|
|
| |
in use supports it.
llvm-svn: 189439
|
| |
|
|
| |
llvm-svn: 189428
|
| |
|
|
|
|
|
| |
algorithm. Update the split dwarf hashing testcase accordingly - this
should be the last time that the hash of an empty file changes.
llvm-svn: 189427
|