| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Differential revision: http://reviews.llvm.org/D19184
llvm-svn: 273198
|
|
|
|
| |
llvm-svn: 273197
|
|
|
|
| |
llvm-svn: 273196
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Fixes PR27941, a crash on invalid.
Differential revision: http://reviews.llvm.org/D20923
llvm-svn: 273193
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rafael, ruiu
Subscribers: kzhuravl, llvm-commits
Differential Revision: http://reviews.llvm.org/D21294
llvm-svn: 273192
|
|
|
|
|
|
|
|
|
|
| |
Include opencl-c.h by default as a module to utilize the automatic AST caching mechanism of clang modules.
Add an option -finclude-default-header to enable default header for OpenCL, which is off by default.
Differential Revision: http://reviews.llvm.org/D20444
llvm-svn: 273191
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D21477
llvm-svn: 273190
|
|
|
|
|
|
|
|
|
| |
We recently made MemorySSA own the walker it creates. As a part of this,
the MSSA test fixture was changed to have a `Walker*` instead of a
`unique_ptr<Walker>`. So, we no longer need to do `&*Walker` in order to
get a `Walker*`.
llvm-svn: 273189
|
|
|
|
|
|
|
| |
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: 273186
|
|
|
|
| |
llvm-svn: 273185
|
|
|
|
| |
llvm-svn: 273184
|
|
|
|
| |
llvm-svn: 273183
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 273180
|
|
|
|
| |
llvm-svn: 273179
|
|
|
|
| |
llvm-svn: 273178
|
|
|
|
|
|
|
| |
Backends may want to report errors on resources other than
stack size.
llvm-svn: 273177
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The RoundUpToInstrBoundary determines intructions boundary and it's used to determine how to patch (intercept) functions.
The current x64-bit implementation is incomplete. This patch is adding patterns observed when trying to sanitize a 64-bit executable on my computer.
Thw two current functions not intercepted are:
```
RaiseExceptionStub:
000000007720C3B0 EB 06 jmp RaiseException (07720C3B8h)
000000007720C3B2 90 nop
000000007720C3B3 90 nop
000000007720C3B4 90 nop
000000007720C3B5 90 nop
000000007720C3B6 90 nop
000000007720C3B7 90 nop
RaiseException:
000000007720C3B8 FF 25 3A 18 09 00 jmp qword ptr [__imp_RaiseException (07729DBF8h)]
000000007720C3BE 8B 44 24 54 mov eax,dword ptr [rsp+54h]
000000007720C3C2 85 C0 test eax,eax
000000007720C3C4 0F 84 F5 05 00 00 je Wow64NtCreateKey+12Fh (07720C9BFh)
```
```
CreateThreadStub:
0000000077215A10 48 83 EC 48 sub rsp,48h
0000000077215A14 48 8B 44 24 78 mov rax,qword ptr [rsp+78h]
0000000077215A19 48 89 44 24 38 mov qword ptr [rsp+38h],rax
0000000077215A1E 8B 44 24 70 mov eax,dword ptr [rsp+70h]
```
Reviewers: rnk
Subscribers: wang0109, chrisha
Differential Revision: http://reviews.llvm.org/D21519
llvm-svn: 273176
|
|
|
|
|
|
|
| |
Update an existing test to exercise the new functionality, while
I'm here.
llvm-svn: 273175
|
|
|
|
|
|
|
| |
A runtime flag to enable checking in send* interceptors.
Checking is enabled by default.
llvm-svn: 273174
|
|
|
|
| |
llvm-svn: 273173
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 273170
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
Handles the cases where old __va_list_tag is coming from a module and the new
is not, needing an update record.
Fixes https://llvm.org/bugs/show_bug.cgi?id=27890
Patch by Cristina Cristescu, Richard Smith and me.
llvm-svn: 273159
|
|
|
|
|
|
| |
Same tactic as linux-header-search.cpp and android-ndk-standalone.cpp.
llvm-svn: 273158
|
|
|
|
|
|
| |
Thanks to Will Dietz for reporting the issue.
llvm-svn: 273157
|
|
|
|
| |
llvm-svn: 273156
|
|
|
|
| |
llvm-svn: 273155
|
|
|
|
| |
llvm-svn: 273154
|
|
|
|
| |
llvm-svn: 273153
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With fix:
-soname flag was not set in testcase. Hash calculated for base def was different on local
and bot machines because filename fos used for calculating.
Initial commit message:
Patch implements basic support of versioned symbols.
There is no wildcards patterns matching except local: *;
There is no support for hierarchies.
There is no support for symbols overrides (@ vs @@ not handled).
This patch allows programs that using simple scripts to link and run.
Differential revision: http://reviews.llvm.org/D21018
llvm-svn: 273152
|