| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
If there is no interference and no last split point, we cannot
enterIntvBefore(Stop) - that function needs a real instruction.
Use enterIntvAtEnd instead for that very easy case.
This code doesn't currently run, it is needed by multi-way splitting.
llvm-svn: 135846
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A split candidate can have a null PhysReg which means that it doesn't
map to a real interference pattern. Instead, pretend that all through
blocks have interference.
This makes it possible to generate compact regions where the live range
doesn't go through blocks that don't use it. The live range will still
be live between directly connected blocks with uses.
Splitting around a compact region tends to produce a live range with a
high spill weight, so it may evict a less dense live range.
llvm-svn: 135845
|
| |
|
|
|
|
|
|
|
|
| |
This method matches addLinks - All the listed blocks are considered to
have interference, so they add a negative bias to their bundles.
This could also be done by addConstraints, but that requires building a
separate BlockConstraint array.
llvm-svn: 135844
|
| |
|
|
|
|
| |
They always report 'no interference'.
llvm-svn: 135843
|
| |
|
|
| |
llvm-svn: 135837
|
| |
|
|
|
|
| |
they belong.
llvm-svn: 135833
|
| |
|
|
|
|
| |
removes its dependence on canonical induction variables.
llvm-svn: 135829
|
| |
|
|
| |
llvm-svn: 135828
|
| |
|
|
| |
llvm-svn: 135826
|
| |
|
|
| |
llvm-svn: 135825
|
| |
|
|
|
|
|
|
|
| |
The immediate is in the range 1-32, but is encoded as 0-31 in a 5-bit bitfield.
Update the representation such that we store the operand as 0-31, allowing us
to remove the encoder method and the special case handling in the disassembler.
Update the assembly parser and the instruction printer accordingly.
llvm-svn: 135823
|
| |
|
|
|
|
|
| |
so that a declaration for objc_retain is created when needed if it doesn't
already exist. rdar://9825114.
llvm-svn: 135821
|
| |
|
|
|
|
| |
Tests for SMULBB, SMLALBT, SMLALTB, SMLALTT, and SMULL. Fix parsing of SMULLS.
llvm-svn: 135817
|
| |
|
|
|
|
| |
InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC.
llvm-svn: 135812
|
| |
|
|
|
|
| |
emitted, emit them next as CIE/FDEs.
llvm-svn: 135807
|
| |
|
|
|
|
| |
load folding logic
llvm-svn: 135801
|
| |
|
|
|
|
| |
Fix parsing of carry-setting variant SMLALS and add tests.
llvm-svn: 135797
|
| |
|
|
|
|
| |
Fix encoding of destination register. Add tests.
llvm-svn: 135796
|
| |
|
|
| |
llvm-svn: 135794
|
| |
|
|
|
|
| |
too. Patch by Jeff Muizelaar.
llvm-svn: 135789
|
| |
|
|
|
|
|
| |
of doing the RAUW calls for the overflow value itself. This makes
it more consistent with how the rest of LegalizeDAG works.
llvm-svn: 135788
|
| |
|
|
| |
llvm-svn: 135785
|
| |
|
|
| |
llvm-svn: 135782
|
| |
|
|
|
|
|
| |
These instruction definitions are for the assembler, too, not just the
disassembler.
llvm-svn: 135781
|
| |
|
|
| |
llvm-svn: 135779
|
| |
|
|
| |
llvm-svn: 135778
|
| |
|
|
| |
llvm-svn: 135777
|
| |
|
|
|
|
|
| |
Add parsing and diagnostics for malformed inputs. Tests for diagnostics and
for correct encodings.
llvm-svn: 135776
|
| |
|
|
| |
llvm-svn: 135771
|
| |
|
|
|
|
| |
ConstantExpr::getGetElementPtr to use ArrayRef.
llvm-svn: 135762
|
| |
|
|
|
|
| |
ArrayRef.
llvm-svn: 135761
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The header file was already properly located. The previous need for it
in Support had to do with the version string printing which was fixed in
r135757.
Also update build dependencies where libraries that needed the
functionality of the Target library (in the form of the TargetRegistry)
were picking it up via Support. This is pretty pervasive, essentially
every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it
depend on Target. All of these were previously just sneaking by.
llvm-svn: 135760
|
| |
|
|
|
|
| |
ConstantExpr::getGetElementPtr to use ArrayRef.
llvm-svn: 135758
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the Support library. Now its part of the TargetRegistry, and the three
commands that care about this explicitly register this extra bit of
version information.
The set of commands which care was computed by intersecting those which
use the Support library's version string printing and those that
initialize all the registered targets in a way that produces
a meaningful list. The only odd ball out is that 'clang -cc1as -version'
no longer prints the registered targets. I don't think anyone is really
interested in that (especially as the fact that llvm-mc does so is under
a FIXME), but if someone really does want this back I'll happily apply
the same patch there.
llvm-svn: 135757
|
| |
|
|
|
|
|
| |
function on the TargetRegistry. Also clean it up and use the modern LLVM
utility libraries available instead of rolling a few things manually.
llvm-svn: 135756
|
| |
|
|
|
|
|
|
|
|
|
|
| |
register extra version information to be printed. This is designed to
allow those tools which link in various targets to also print those
registered targets under --version.
Currently this printing logic is embedded into the Support library
directly; a huge layering violation. This is the first step to hoisting
it out into the tools without adding lots of duplicated code.
llvm-svn: 135755
|
| |
|
|
|
| |
FIXME: There is an inconsistency. llvm::Triple does not understand "ppc32" and PowerPC/TargetInfo holds "ppc32".
llvm-svn: 135745
|
| |
|
|
| |
llvm-svn: 135742
|
| |
|
|
|
|
| |
Remove the escaped newline.
llvm-svn: 135739
|
| |
|
|
| |
llvm-svn: 135738
|
| |
|
|
| |
llvm-svn: 135734
|
| |
|
|
|
|
|
|
| |
the way to go. Doing this here will prevent several node matches later,
and would have to force looking all the way through several
VINSERTF128/VEXTRACTF128 chains to optimize simple things.
llvm-svn: 135730
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and was actually very wrong, fix it and make it simpler. Also remove the
ConcatVectors function, which is unused now.
- Fix a introduction of useless nodes in r126664 and r126264. The
VUNPCKL* should never be introduced cause we don't want duplicate
nodes for 128 AVX and non-AVX modes, the actual instruction
difference only exists during isel, but not for target specific DAG
nodes. We only introduce V* target nodes when there is no 128-bit
version already there.
- Fix a fragile test and make it more useful.
llvm-svn: 135729
|
| |
|
|
|
|
| |
vxorps + vinsertf128 pair of instructions
llvm-svn: 135727
|
| |
|
|
|
|
|
| |
direclty supported and should be promoted and handled by smaller
shuffles
llvm-svn: 135726
|
| |
|
|
| |
llvm-svn: 135725
|
| |
|
|
| |
llvm-svn: 135724
|
| |
|
|
|
|
| |
necessitates a lot of changes to related bits.
llvm-svn: 135722
|
| |
|
|
|
|
|
| |
size but different element types, so that it filters out the cases
that CreateShuffleVectorCast doesn't handle. This fixes rdar://9786827.
llvm-svn: 135721
|
| |
|
|
| |
llvm-svn: 135719
|