| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 273206
|
|
|
|
|
|
| |
Differential revision: http://reviews.llvm.org/D19185
llvm-svn: 273203
|
|
|
|
|
|
|
|
| |
There is a known intended race here. This is a follow-up to r264805,
which disabled tsan instrumentation for updates to instrprof counters.
For more background on this please see the discussion in D18164.
llvm-svn: 273202
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
false logic (PR27869)
By moving this transform to InstSimplify from InstCombine, we sidestep the problem/question
raised by PR27869:
https://llvm.org/bugs/show_bug.cgi?id=27869
...where InstCombine turns an icmp+zext into a shift causing us to miss the fold.
Credit to David Majnemer for a draft patch of the changes to InstructionSimplify.cpp.
Differential Revision: http://reviews.llvm.org/D21512
llvm-svn: 273200
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Inliner needs ACT when calling InlineFunction. Instead of nullptr, we need to pass it in from SampleProfileLoader
Reviewers: davidxl
Subscribers: eraman, vsk, danielcdh, llvm-commits
Differential Revision: http://reviews.llvm.org/D21205
llvm-svn: 273199
|
|
|
|
|
|
| |
GetFinalPathNameByHandle API does not behave as documented; if given a buffer that has enough space for the path but not the null terminator, the call will return the number of characters required *without* the null terminator (despite being documented otherwise) and it will not set GetLastError(). The result was that this function would return a bogus path and no error. Instead, ensure there is sufficient space for a null terminator (we already strip it off manually for compatibility with older versions of Windows).
llvm-svn: 273195
|
|
|
|
| |
llvm-svn: 273194
|
|
|
|
|
|
|
| |
Specific instances of intrinsic calls may want to be convergent, such
as certain register reads but the intrinsic declaration is not.
llvm-svn: 273188
|
|
|
|
| |
llvm-svn: 273187
|
|
|
|
| |
llvm-svn: 273185
|
|
|
|
|
|
|
|
|
| |
The implicit operand is added by the initial instruction construction,
so this was adding an additional vcc use. The original one
was missing the undef flag the original condition had,
so the verifier would complain.
llvm-svn: 273182
|
|
|
|
|
|
|
|
|
|
|
| |
This will help sneak undefs past GVN into the DAG for
some tests.
Also add missing intrinsic for rsq_legacy, even though the node
was already selected to the instruction. Also start passing
the debug location to intrinsic errors.
llvm-svn: 273181
|
|
|
|
|
|
|
| |
Backends may want to report errors on resources other than
stack size.
llvm-svn: 273177
|
|
|
|
| |
llvm-svn: 273172
|
|
|
|
|
|
|
|
| |
Trying to expand short names with a relative path doesn't work, so this
first gets the module name to get a full path (which can still have short
names).
llvm-svn: 273171
|
|
|
|
|
|
| |
With this ARM fast isel knows that PIE variable are not preemptable.
llvm-svn: 273169
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm, kzhuravl, rafael
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21401
llvm-svn: 273168
|
|
|
|
| |
llvm-svn: 273167
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: arsenm, rafael, kzhuravl
Subscribers: rafael, arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21400
llvm-svn: 273166
|
|
|
|
|
|
|
|
|
|
| |
TargetLowering and DAGToDAG are used to combine ADDC, ADDE and UMLAL
dags into UMAAL. Selection is split into the two phases because it
is easier to match the two patterns at those different times.
Differential Revision: http://http://reviews.llvm.org/D21461
llvm-svn: 273165
|
|
|
|
|
|
|
| |
Reduces a bit of code duplication and clarify where we are interested
just on position independence and no the location of the symbol.
llvm-svn: 273164
|
|
|
|
| |
llvm-svn: 273163
|
|
|
|
|
|
|
|
| |
This reverts commit r273160, reapplying r273132.
RecursivelyDeleteTriviallyDeadInstructions cannot be called on a
parentless Instruction.
llvm-svn: 273162
|
|
|
|
|
|
| |
happens to also eliminate an instance of switchception. NFC intended.
llvm-svn: 273161
|
|
|
|
|
|
|
|
| |
This reverts commit r273132.
Breaks multiple test under /llvm/test:Transforms (e.g.
llvm/test:Transforms/LoopIdiom/basic.ll.test) under asan.
llvm-svn: 273160
|
|
|
|
| |
llvm-svn: 273149
|
|
|
|
|
|
|
|
| |
Adding core tuning support for new Broadcom Vulcan core (ARMv8.1A).
Differential Revision: http://reviews.llvm.org/D21500
llvm-svn: 273148
|
|
|
|
|
|
|
|
|
| |
Remove dependency of the evalution order of function arguments, which
is unspecified.
Patch by David Stenberg.
llvm-svn: 273145
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove dependency of the evalution order of function arguments, which
is unspecified.
The following test previously failed when built with GCC (but succeded
when built with Clang):
; RUN: opt -sroa -S < %s | FileCheck %s
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%A = type {i16}
@a = global %A* null
@b = global i16 0
; CHECK-LABEL: @f1(
; CHECK: alloca %A
; CHECK-NEXT: extractvalue %A
; CHECK-NEXT: getelementptr inbounds %A
define void @f1 (%A %a) {
%1 = alloca %A
store %A %a, %A* %1
%2 = load i16, i16* @b
%3 = icmp ne i16 %2, 0
br i1 %3, label %bb1, label %bb2
bb1:
store %A* %1, %A** @a
br label %bb2
bb2:
ret void
}
Patch by David Stenberg.
Differential Revision: http://reviews.llvm.org/D21226
llvm-svn: 273144
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After a store has been eliminated, when making sure that the
instruction iterator points to a valid instruction, dbg intrinsics are
now ignored as a new instruction.
Patch by Henric Karlsson.
Reviewed by Daniel Berlin.
Differential Revision: http://reviews.llvm.org/D21076
llvm-svn: 273141
|
|
|
|
|
|
|
| |
This patch adds a function that corresponds to `fUDTAnon`
and use that to compute TPI hash values as the reference does.
llvm-svn: 273139
|
|
|
|
|
|
|
|
| |
intrinsic lowering.
Differential Revision: http://reviews.llvm.org/D20897
llvm-svn: 273138
|
|
|
|
|
|
| |
all of the other routines instead of recreating them in the handlers for each type. NFC
llvm-svn: 273137
|
|
|
|
|
|
| |
repeatedly. Remove nearby else after return as well. NFC
llvm-svn: 273136
|
|
|
|
|
|
| |
to. And just use a SmallVector to do the copy because its easy.
llvm-svn: 273135
|
|
|
|
|
|
|
|
|
|
| |
On the surface, this might not look like it does anything... but
actually it brings in the declaration "extern template class
AnalysisManager<Loop>;", which suppresses the instantiation of the
constructor, which avoids the funny interaction between "extern
template" and -fvisibility-inlines-hidden.
llvm-svn: 273133
|
|
|
|
|
|
|
|
|
|
| |
Removing dead instructions requires remembering which operands have
already been removed. RecursivelyDeleteTriviallyDeadInstructions has
this logic, don't partially reimplement it in LoopIdiomRecognize.
This fixes PR28196.
llvm-svn: 273132
|
|
|
|
| |
llvm-svn: 273131
|
|
|
|
| |
llvm-svn: 273130
|
|
|
|
| |
llvm-svn: 273129
|
|
|
|
|
|
|
| |
Use an APInt to handle pointers of arbitrary width, let
accumulateConstantOffset handle overflow issues.
llvm-svn: 273126
|
|
|
|
|
|
| |
support
llvm-svn: 273125
|
|
|
|
| |
llvm-svn: 273124
|
|
|
|
| |
llvm-svn: 273120
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently only allow exact matches of shuffle mask patterns during target shuffle combining.
This patch relaxes this to permit SM_SentinelUndef in the combined shuffle to always be accepted as well as allowing exact matching of the SM_SentinelZero value.
I've adjusted some tests that were requiring exact shuffle masks to now include undef values.
Differential Revision: http://reviews.llvm.org/D21495
llvm-svn: 273119
|
|
|
|
| |
llvm-svn: 273118
|
|
|
|
|
|
| |
vectors. Reduce SmallVector size accordingly.
llvm-svn: 273117
|
|
|
|
|
|
| |
vector for the smaller mask. This removes some custom correction code and can potentially provide other benefits in the future.
llvm-svn: 273116
|
|
|
|
|
|
| |
only called on single input shuffles masks already. Add an assert instead to verify.
llvm-svn: 273115
|
|
|
|
| |
llvm-svn: 273114
|