| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
it into all of its call sites and simplifying them.
llvm-svn: 81962
|
| |
|
|
| |
llvm-svn: 81961
|
| |
|
|
|
|
|
| |
Radar 7200803. (This should also fix the
SingleSource/UnitTests/Vector/sumarray-dbl test.)
llvm-svn: 81959
|
| |
|
|
|
|
|
| |
code in other segments) to the Intel instruction
tables.
llvm-svn: 81953
|
| |
|
|
| |
llvm-svn: 81946
|
| |
|
|
| |
llvm-svn: 81942
|
| |
|
|
|
|
|
| |
move MachineFunctionInfo virtual method out of line to give it
a home.
llvm-svn: 81940
|
| |
|
|
|
|
|
|
| |
cannot have different
SVOffsets.
llvm-svn: 81937
|
| |
|
|
| |
llvm-svn: 81928
|
| |
|
|
| |
llvm-svn: 81923
|
| |
|
|
|
|
|
|
| |
Intel tables, where the source operand is
specified by the R/M field and the destination
operand by the Reg field.
llvm-svn: 81914
|
| |
|
|
|
|
|
| |
- As best I can tell, we have eliminated all the code which used to require a
larger buffer size.
llvm-svn: 81912
|
| |
|
|
| |
llvm-svn: 81909
|
| |
|
|
|
|
|
|
| |
the current alignment based
on the source value offset. This avoids increasing the size of mem nodes.
llvm-svn: 81897
|
| |
|
|
|
|
|
|
| |
to the Intel register table.
Added 16- and 64-bit MOVs to and from the segment
registers to the Intel instruction tables.
llvm-svn: 81895
|
| |
|
|
|
|
|
|
|
| |
interrupt instruction, which shouldn't arise any other way). 0xcd is
also used by JITMemoryManager to initialize the buffer to garbage,
which means it could appear following a noreturn call even when
that is not a stub, confusing X86CompilationCallback2. PR 4929.
llvm-svn: 81888
|
| |
|
|
|
|
|
|
| |
displacement
values to machineinstrs.
llvm-svn: 81886
|
| |
|
|
| |
llvm-svn: 81881
|
| |
|
|
|
|
|
|
|
|
|
| |
VLDM/VSTM instructions, and without this check, the code assumes that an
offset is allowed, as it would be with VLDR/VSTR. The asm printer,
however, silently drops the offset, producing incorrect code. Since the
address register in this case is either the stack or frame pointer, the
spill location ends up conflicting with some other stack slot or with
outgoing arguments on the stack.
llvm-svn: 81879
|
| |
|
|
| |
llvm-svn: 81878
|
| |
|
|
|
|
| |
and PIC codegen. Patch by Venkatraman Govindaraju!
llvm-svn: 81877
|
| |
|
|
|
|
|
| |
not folded in the constant folder because the constant folder doesn't
simplify ConstantExpr operands.
llvm-svn: 81864
|
| |
|
|
| |
llvm-svn: 81862
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of cloning and RAUWing it.
- Make AbstractTypeUser a friend of Value so that it can offer
its subclasses a way to update a Value's type in place. This
is better than a universally visible setType method on Value,
and it's sufficient for the immediate need.
- Eliminate the constant "convert" functions. This eliminates a
lot of logic duplication, and fixes a complicated bug where a
constant can't actually be cloned during the type refinement
process because some of the types that its folder needs are
half-destroyed, being in the middle of refinement themselves.
- Move the getValType functions from being static overloaded
functions in Constants.cpp to be members of class template
specializations in ConstantsContext.h. This means that the
code ends up getting instantiated twice, however it also
makes it possible to eliminate all "convert" functions, so
it's not a big net code size increase. And if desired, the
duplicate instantiations could be eliminated with some
reorganization.
llvm-svn: 81861
|
| |
|
|
| |
llvm-svn: 81851
|
| |
|
|
|
|
|
|
| |
sources are defined by phi join def) are coalesced. And the phi join copy is backward copy propagated into the other copies.
Still miscompiling some tests. :-(
llvm-svn: 81849
|
| |
|
|
|
|
|
|
|
|
| |
While I'm there, change code that does:
SomeTy == Type::getFooType(Context)
into:
SomeTy->getTypeID() == FooTyID
to decrease the amount of useless type creation which may involve locking, etc.
llvm-svn: 81846
|
| |
|
|
|
|
| |
an unpacked one.
llvm-svn: 81845
|
| |
|
|
|
|
|
|
| |
argpromote to avoid invalidating an iterator. This fixes PR4977.
All clang tests now pass with expensive checking (on my system
at least).
llvm-svn: 81843
|
| |
|
|
| |
llvm-svn: 81840
|
| |
|
|
|
|
| |
are in the SCC for each execution of a CGSCC pass.
llvm-svn: 81838
|
| |
|
|
| |
llvm-svn: 81836
|
| |
|
|
| |
llvm-svn: 81827
|
| |
|
|
|
|
|
| |
GetProcessId was introduced only in XP. As a bonus, this change makes Program
objects copyable, since Program is now basically a PID.
llvm-svn: 81826
|
| |
|
|
|
|
|
|
|
| |
has multiple uses, as one of the other uses may be on a path
to a different node above the callseq_start, because that
leads to a cyclic graph. This problem is exposed when
-combiner-global-alias-analysis is used. This fixes PR4880.
llvm-svn: 81821
|
| |
|
|
| |
llvm-svn: 81819
|
| |
|
|
|
|
|
| |
versions of CALL and JMP with segmented addresses
provided in-line, as pairs of immediates.
llvm-svn: 81818
|
| |
|
|
|
|
|
|
| |
parses the .word directive as 4 bytes and ARMAsmParser::ParseInstruction will
give an error is called. Broke out the test of the .word directive into two
different test cases, one for x86 and one for arm.
llvm-svn: 81817
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Switch from an std::set to a SmallPtrSet for visited chain nodes.
2. Do not force the recursive flattening of token factor nodes, regardless of
use count.
3. Immediately process newly created TokenFactor nodes.
Also, improve combiner-aa by teaching it that loads to non-overlapping offsets
of relatively aligned objects cannot alias.
These changes result in a >5x speedup for combiner-aa on most testcases.
llvm-svn: 81816
|
| |
|
|
|
|
| |
it splits them.
llvm-svn: 81815
|
| |
|
|
|
|
| |
its result if the condition is false.
llvm-svn: 81814
|
| |
|
|
|
|
|
| |
DAG Combiner to disambiguate chains for loads and stores of types which are
broken up by the Legalizer into smaller pieces.
llvm-svn: 81813
|
| |
|
|
|
|
| |
memset region to the alignment of the new start address.
llvm-svn: 81810
|
| |
|
|
|
|
|
|
| |
to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this.
The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals.
llvm-svn: 81796
|
| |
|
|
|
|
|
| |
created once, so shouldn't be stuck in the middle of the loop. Also early exit
if there are no uses of UnwindInst in the function.
llvm-svn: 81785
|
| |
|
|
| |
llvm-svn: 81773
|
| |
|
|
| |
llvm-svn: 81770
|
| |
|
|
| |
llvm-svn: 81757
|
| |
|
|
| |
llvm-svn: 81755
|
| |
|
|
|
|
|
|
|
|
|
| |
full AsmPrinter, and change TargetRegistry to keep track
of registered MCInstPrinters.
llvm-mc is still linking in the entire
target foo to get the code emitter stuff, but this is an
important step in the right direction.
llvm-svn: 81754
|