| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 119990
|
|
|
|
| |
llvm-svn: 119903
|
|
|
|
|
|
|
|
|
|
|
| |
so don't claim they are. They are allocated using DAG.getNode, so attempts
to access MemSDNode fields results in reading off the end of the allocated
memory. This fixes crashes with "llc -debug" due to debug code trying to
print MemSDNode fields for these barrier nodes (since the crashes are not
deterministic, use valgrind to see this). Add some nasty checking to try
to catch this kind of thing in the future.
llvm-svn: 119901
|
|
|
|
|
|
|
| |
DAGCombine from making an illegal transformation of bitcast of a scalar to a
vector into a scalar_to_vector.
llvm-svn: 119819
|
|
|
|
|
|
|
|
| |
memset; we may need it to decide between MOVAPS and MOVUPS
later. Adjust a test that was looking for wrong code.
PR 3866 / 8675131.
llvm-svn: 119605
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be used
to perform the copy, which may be of lots of memory [*]. It would be good if the
fall-back code generated something reasonable, i.e. did the copy in a loop, rather
than vast numbers of loads and stores. Add a note about this. Currently target
specific code seems to always kick in so this is more of a theoretical issue rather
than a practical one now that X86 has been fixed.
[*] It's amazing how often people pass mega-byte long arrays by copy...
llvm-svn: 118275
|
|
|
|
|
|
|
| |
with a SimpleValueType, while an EVT supports equality and
inequality comparisons with SimpleValueType.
llvm-svn: 118169
|
|
|
|
|
|
|
|
| |
memory, so a MachineMemOperand is useful (not propagated
into the MachineInstr yet). No functional change except
for dump output.
llvm-svn: 117413
|
|
|
|
| |
llvm-svn: 116890
|
|
|
|
|
|
|
| |
setup they require. Use this for ARM/Darwin to rematerialize the base
pointer from the frame pointer when required. rdar://8564268
llvm-svn: 116879
|
|
|
|
|
|
|
| |
I think I've audited all uses, so it should be dependable for address spaces,
and the pointer+offset info should also be accurate when there.
llvm-svn: 114464
|
|
|
|
|
|
| |
MachinePointerInfo around more.
llvm-svn: 114452
|
|
|
|
| |
llvm-svn: 114450
|
|
|
|
|
|
| |
with an indexed load/store that has an offset in the index.
llvm-svn: 114449
|
|
|
|
|
|
| |
SelectionDAG::getExtLoad overload, and eliminate it.
llvm-svn: 114446
|
|
|
|
|
|
| |
getLoad overloads.
llvm-svn: 114443
|
|
|
|
|
|
|
| |
instead of srcvalue/offset pairs. This corrects SV info for mem
operations whose size is > 32-bits.
llvm-svn: 114401
|
|
|
|
|
|
|
| |
MachinePointerInfo. Among other virtues, this doesn't silently truncate the
svoffset to 32-bits.
llvm-svn: 114399
|
|
|
|
|
|
| |
MachinePointerInfo
llvm-svn: 114397
|
|
|
|
|
|
| |
eliminating some weird "infer a frame address" logic which was dead.
llvm-svn: 114396
|
|
|
|
|
|
|
| |
MachinePointerInfo, propagating the type out a level of API. Remove
the old MachineFunction::getMachineMemOperand impl.
llvm-svn: 114393
|
|
|
|
|
|
|
|
|
|
| |
is that there is
NO path to the destination containing side effects, not that SOME path contains no side effects.
In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little
to no branching, so "any" is effectively equivalent to "all".
llvm-svn: 114268
|
|
|
|
| |
llvm-svn: 112571
|
|
|
|
|
|
|
|
| |
Fixes potential ambiguity problems on VS 2010.
Patch by nobled!
llvm-svn: 110029
|
|
|
|
| |
llvm-svn: 109234
|
|
|
|
| |
llvm-svn: 109122
|
|
|
|
|
|
| |
-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.
llvm-svn: 108465
|
|
|
|
|
|
| |
for consistency sake.
llvm-svn: 107820
|
|
|
|
| |
llvm-svn: 107710
|
|
|
|
|
|
| |
ensures remat'ed loads from fixed slots have the right alignments.
llvm-svn: 107591
|
|
|
|
|
|
| |
This produces terrible but correct code.
llvm-svn: 106952
|
|
|
|
|
|
| |
is not used. Spotted by gcc-4.6.
llvm-svn: 106854
|
|
|
|
|
|
| |
as many tests as possible.
llvm-svn: 106749
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the condition is constant. This optimization shouldn't be
necessary, because codegen shouldn't be able to find dead control
paths that the IR-level optimizer can't find. And it's undesirable,
because it encourages bugpoint to leave "br i1 false" branches
in its output. And it wasn't updating the CFG.
I updated all the tests I could, but some tests are too reduced
and I wasn't able to meaningfully preserve them.
llvm-svn: 106748
|
|
|
|
| |
llvm-svn: 106746
|
|
|
|
|
|
| |
DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled.
llvm-svn: 106634
|
|
|
|
|
|
| |
SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
|
|
|
|
|
|
| |
the old one.
llvm-svn: 106284
|
|
|
|
|
|
|
| |
Don't replace the old DbgInfo with a new one when clear() on the
old one is sufficient.
llvm-svn: 106283
|
|
|
|
|
|
| |
SDNode *, since it doesn't care about the ResNo value.
llvm-svn: 106282
|
|
|
|
|
|
| |
which is faster, simpler, and less surprising.
llvm-svn: 106263
|
|
|
|
| |
llvm-svn: 106256
|
|
|
|
| |
llvm-svn: 105283
|
|
|
|
|
|
|
|
|
| |
that are too large. This causes the freebsd bootloader to be too
large apparently.
It's unclear if this should be an -Os or -Oz thing. Thoughts welcome.
llvm-svn: 105228
|
|
|
|
| |
llvm-svn: 105226
|
|
|
|
|
|
|
| |
shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set
doesn't needs its EnableFastISel argument.
llvm-svn: 105101
|
|
|
|
|
|
| |
ISD::. No functional change.
llvm-svn: 104734
|
|
|
|
| |
llvm-svn: 103882
|
|
|
|
|
|
|
|
| |
Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.
llvm-svn: 103481
|
|
|
|
|
|
| |
Based on a patch by Javier Martinez.
llvm-svn: 103391
|