NAKAMURA Takumi [Sun, 28 Feb 2016 16:54:06 +0000 (16:54 +0000)]
Revert r262185, "[PM] Appease mingw32's auto-import DLL build with minimal tweaks."
I'll rework soon.
llvm-svn: 262186
NAKAMURA Takumi [Sun, 28 Feb 2016 16:38:46 +0000 (16:38 +0000)]
[PM] Appease mingw32's auto-import DLL build with minimal tweaks.
char AnalysisBase::ID should be declared as extern and defined in one module.
llvm-svn: 262185
Rafael Espindola [Sun, 28 Feb 2016 16:27:08 +0000 (16:27 +0000)]
Delete more COFF and ELF bits from the old linker.
llvm-svn: 262184
Rafael Espindola [Sun, 28 Feb 2016 16:11:53 +0000 (16:11 +0000)]
Delete dead arch types.
llvm-svn: 262183
Rafael Espindola [Sun, 28 Feb 2016 16:08:21 +0000 (16:08 +0000)]
Delete a bit more ELF and COFF from the old linker.
llvm-svn: 262182
Rafael Espindola [Sun, 28 Feb 2016 16:03:37 +0000 (16:03 +0000)]
Delete more ELF bits from the old linker.
llvm-svn: 262181
JF Bastien [Sun, 28 Feb 2016 15:44:54 +0000 (15:44 +0000)]
WebAssembly: fix test
Operand order seems to have changed, the new one is nicer.
llvm-svn: 262180
JF Bastien [Sun, 28 Feb 2016 15:33:53 +0000 (15:33 +0000)]
WebAssembly: fix build
More API churn, experimental target got sad.
llvm-svn: 262179
Logan Chien [Sun, 28 Feb 2016 15:01:42 +0000 (15:01 +0000)]
Add ARM EHABI-related constants to unwind.h.
Adds a number of constants, defined in the ARM EHABI spec, to the Clang
lib/Headers/unwind.h header. This is prerequisite for landing
http://reviews.llvm.org/D15781, as previously discussed there.
Patch by Timon Van Overveldt.
llvm-svn: 262178
Michael Zuckerman [Sun, 28 Feb 2016 07:39:34 +0000 (07:39 +0000)]
[CLANG] [AVX512] [BUILTIN] Adding PSLL{V|W|Wi}{128|256|512} builtin
Differential Revision: http://reviews.llvm.org/D17685
llvm-svn: 262177
Michael Zuckerman [Sun, 28 Feb 2016 07:32:10 +0000 (07:32 +0000)]
[AVX512][PSLLW ][PSLLV] Change imm8 to int
Differential Revision: http://reviews.llvm.org/D17684
llvm-svn: 262176
Rui Ueyama [Sun, 28 Feb 2016 05:09:11 +0000 (05:09 +0000)]
ELF: Remove OutSection class and use a map instead.
It is easier to handle section filler data separately rather than
merging with section names.
llvm-svn: 262175
Rui Ueyama [Sun, 28 Feb 2016 04:48:54 +0000 (04:48 +0000)]
Simplify. NFC.
llvm-svn: 262174
Rui Ueyama [Sun, 28 Feb 2016 04:44:10 +0000 (04:44 +0000)]
Remove dead header file.
llvm-svn: 262173
Rui Ueyama [Sun, 28 Feb 2016 04:07:16 +0000 (04:07 +0000)]
Remove obsolte TODOs. They are for the old gnu driver.
llvm-svn: 262172
Rui Ueyama [Sun, 28 Feb 2016 04:03:01 +0000 (04:03 +0000)]
Remove lld/Core/range.h.
IIUC, range was an experiment to see how N3350 would work in LLD.
It turned out it didn't get traction, and it is basically duplicate
of iterator_range in ADT. We have only two occurrences of range,
and all of them are easily rewritten without it.
http://reviews.llvm.org/D17687
llvm-svn: 262171
Rui Ueyama [Sun, 28 Feb 2016 03:34:34 +0000 (03:34 +0000)]
Remove an empty TODO file.
llvm-svn: 262170
Rui Ueyama [Sun, 28 Feb 2016 03:27:09 +0000 (03:27 +0000)]
Remove unused #include.
llvm-svn: 262169
Rui Ueyama [Sun, 28 Feb 2016 03:18:09 +0000 (03:18 +0000)]
ELF: Add --help option.
llvm-svn: 262168
Rui Ueyama [Sun, 28 Feb 2016 03:18:07 +0000 (03:18 +0000)]
ELF: Add --version option.
llvm-svn: 262167
Rui Ueyama [Sun, 28 Feb 2016 02:51:02 +0000 (02:51 +0000)]
Remove dead code. This error type is for the old linker script reader.
llvm-svn: 262166
Rui Ueyama [Sun, 28 Feb 2016 02:47:52 +0000 (02:47 +0000)]
Remove dead header files.
llvm-svn: 262165
Rafael Espindola [Sun, 28 Feb 2016 02:22:24 +0000 (02:22 +0000)]
Remove a few bits of elf from the old linker.
llvm-svn: 262164
Rafael Espindola [Sun, 28 Feb 2016 02:14:48 +0000 (02:14 +0000)]
Delete the old script parser.
It was ELF specific.
llvm-svn: 262163
Xinliang David Li [Sun, 28 Feb 2016 00:54:28 +0000 (00:54 +0000)]
Test cleanups
llvm-svn: 262162
Xinliang David Li [Sun, 28 Feb 2016 00:45:13 +0000 (00:45 +0000)]
[PGO] add a test for available_externally functions
llvm-svn: 262161
Rui Ueyama [Sun, 28 Feb 2016 00:37:52 +0000 (00:37 +0000)]
Remove dead code.
llvm-svn: 262160
Rafael Espindola [Sun, 28 Feb 2016 00:25:54 +0000 (00:25 +0000)]
Rename elf2 to elf.
llvm-svn: 262159
Rafael Espindola [Sun, 28 Feb 2016 00:10:58 +0000 (00:10 +0000)]
Remove the old ELF linker.
I think it is clear by now that the new linker is viable.
llvm-svn: 262158
Xinliang David Li [Sat, 27 Feb 2016 23:11:30 +0000 (23:11 +0000)]
[PGO] Remove redundant counter copies for avail_extern functions.
Differential Revision: http://reviews.llvm.org/D17654
llvm-svn: 262157
Todd Fiala [Sat, 27 Feb 2016 22:48:50 +0000 (22:48 +0000)]
Revert "Fix bug with register values byte order in expression evaluation."
This reverts commit r262041, which caused asserts starting yesterday on the OS X testbot.
See details in:
https://llvm.org/bugs/show_bug.cgi?id=26758
llvm-svn: 262156
Rui Ueyama [Sat, 27 Feb 2016 20:29:45 +0000 (20:29 +0000)]
ELF: Remove relSize function from ICF.cpp. NFC.
llvm-svn: 262155
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 20:27:44 +0000 (20:27 +0000)]
CodeGen: Remove an iterator => pointer conversion, NFC
Part of PR26753.
llvm-svn: 262154
Matt Arsenault [Sat, 27 Feb 2016 20:26:57 +0000 (20:26 +0000)]
AMDGPU: More bits of frame index are known to be zero
The maximum private allocation for the whole GPU is 4G,
so the maximum possible index for a single workitem is the
maximum size divided by the smallest granularity for a dispatch.
This increases the number of known zero high bits, which
enables more offset folding. The maximum private size per
workitem with this is 128M but may be smaller still.
llvm-svn: 262153
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 20:23:14 +0000 (20:23 +0000)]
CodeGen: Use MachineInstr& in InlineSpiller::rematerializeFor()
InlineSpiller::rematerializeFor() never uses its parameter as an
iterator, so take it by reference instead. This removes an implicit
conversion from MachineBasicBlock::iterator to MachineInstr*.
llvm-svn: 262152
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 20:14:29 +0000 (20:14 +0000)]
CodeGen: Update LiveIntervalAnalysis API to use MachineInstr&, NFC
These parameters aren't expected to be null, so take them by reference.
llvm-svn: 262151
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 20:01:33 +0000 (20:01 +0000)]
CodeGen: Change MachineInstr to use MachineInstr&, NFC
Change MachineInstr API to prefer MachineInstr& over MachineInstr*
whenever the parameter is expected to be non-null. Slowly inching
toward being able to fix PR26753.
llvm-svn: 262149
Matt Arsenault [Sat, 27 Feb 2016 19:57:45 +0000 (19:57 +0000)]
DAGCombiner: Don't unnecessarily swap operands in ReassociateOps
In the case where op = add, y = base_ptr, and x = offset, this
transform:
(op y, (op x, c1)) -> (op (op x, y), c1)
breaks the canonical form of add by putting the base pointer in the
second operand and the offset in the first.
This fix is important for the R600 target, because for some address
spaces the base pointer and the offset are stored in separate register
classes. The old pattern caused the ISel code for matching addressing
modes to put the base pointer and offset in the wrong register classes,
which required no-trivial code transformations to fix.
llvm-svn: 262148
Filipe Cabecinhas [Sat, 27 Feb 2016 19:57:44 +0000 (19:57 +0000)]
[UBSan] Fix isDerivedFromAtOffset on iOS ARM64
Summary:
iOS on ARM64 doesn't unique RTTI.
Ref: clang's iOS64CXXABI::shouldRTTIBeUnique()
Due to this, pointer-equality will not necessarily work in this
architecture, across dylib boundaries.
dynamic_cast<>() will (as expected) still work, since Apple ships with
one prepared for this, but we can't rely on the type names being
pointer-equal.
I've limited the expensive strcmp check to the specific architecture
which needs it.
Example which triggers this bug:
lib.h:
struct X {
virtual ~X() {}
};
X *libCall();
lib.mm:
X *libCall() {
return new X;
}
prog.mm:
int main() {
X *px = libCall();
delete px;
}
Expected output: Nothing
Actual output:
<unknown>: runtime error: member call on address 0x00017001ef50 which does not point to an object of type 'X'
0x00017001ef50: note: object is of type 'X'
00 00 00 00 60 00 0f 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
^~~~~~~~~~~~~~~~~~~~~~~
vptr for ‘X’
Reviewers: kubabrecka, samsonov, eugenis, rsmith
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D11502
llvm-svn: 262147
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 19:48:01 +0000 (19:48 +0000)]
CodeGen: Use MachineInstr& in HashMachineInstr, NFC
Also update HashEndOfMBB to take MachineBasicBlock&.
llvm-svn: 262146
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 19:33:37 +0000 (19:33 +0000)]
CodeGen: Use MachineInstr& in AntiDepBreaker API, NFC
Take parameters as MachineInstr& instead of MachineInstr* in
AntiDepBreaker API, since these are required to be non-null. No
functionality change intended. Looking toward PR26753.
llvm-svn: 262145
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 19:23:34 +0000 (19:23 +0000)]
CodeGen: Assert valid MI in AntiDepBreaker::UpdateDbgValue
This already assumes a valid MI, since it dereferences the MI in an
assertion before checking for null. At an explicit assert.
llvm-svn: 262144
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 19:12:54 +0000 (19:12 +0000)]
AArch64: Use MachineInstr& in guaranteesZeroRegInBlock(), NFC
llvm-svn: 262143
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 19:09:00 +0000 (19:09 +0000)]
CodeGen: Update DFAPacketizer API to take MachineInstr&, NFC
In all but one case, change the DFAPacketizer API to take MachineInstr&
instead of MachineInstr*. In DFAPacketizer::endPacket(), take
MachineBasicBlock::iterator. Besides cleaning up the API, this is in
search of PR26753.
llvm-svn: 262142
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 17:05:33 +0000 (17:05 +0000)]
WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC
Update APIs in MachineInstrBundle.h to take and return MachineInstr&
instead of MachineInstr* when the instruction cannot be null. Besides
being a nice cleanup, this is tacking toward a fix for PR26753.
llvm-svn: 262141
JF Bastien [Sat, 27 Feb 2016 16:38:23 +0000 (16:38 +0000)]
WebAssembly: fix build
It was broken by the work for PR26753.
llvm-svn: 262140
Renato Golin [Sat, 27 Feb 2016 14:19:19 +0000 (14:19 +0000)]
Revert "[sancov] do not instrument nodes that are full pre-dominators"
This reverts commit r262103, as it broke all ARM and AArch64 bots.
llvm-svn: 262139
Alexander Kornienko [Sat, 27 Feb 2016 14:02:08 +0000 (14:02 +0000)]
Workaround doxygen bug https://bugzilla.gnome.org/show_bug.cgi?id=506243
llvm-svn: 262138
Simon Pilgrim [Sat, 27 Feb 2016 13:26:58 +0000 (13:26 +0000)]
Tidyup for loops - don't repeat upper limit evaluation if you don't have to. NFCI.
llvm-svn: 262137
Aaron Ballman [Sat, 27 Feb 2016 13:13:16 +0000 (13:13 +0000)]
Correcting indentation for an RST code block.
llvm-svn: 262136
Chris Dewhurst [Sat, 27 Feb 2016 12:52:26 +0000 (12:52 +0000)]
Addition of tests to previous check-in. Tests for coprocessor register usage in Sparc.
Previous check-in message was:
The patch adds missing registers and instructions to complete all the registers supported by the Sparc v8 manual.
These are all co-processor registers, with the exception of the floating-point deferred-trap queue register.
Although these will not be lowered automatically by any instructions, it allows the use of co-processor
instructions implemented by inline-assembly.
Code Reviewed at http://reviews.llvm.org/D17133, with the exception of a very small change in brace placement in SparcInstrInfo.td,
which was formerly causing a problem in the disassembly of the %fq register.
llvm-svn: 262135
Simon Pilgrim [Sat, 27 Feb 2016 12:51:46 +0000 (12:51 +0000)]
[X86][AVX] vpermilvar.pd mask element indices only use bit1
llvm-svn: 262134
Chris Dewhurst [Sat, 27 Feb 2016 12:49:59 +0000 (12:49 +0000)]
The patch adds missing registers and instructions to complete all the registers supported by the Sparc v8 manual.
These are all co-processor registers, with the exception of the floating-point deferred-trap queue register.
Although these will not be lowered automatically by any instructions, it allows the use of co-processor
instructions implemented by inline-assembly.
Code Reviewed at http://reviews.llvm.org/D17133, with the exception of a very small change in brace placement in SparcInstrInfo.td,
which was formerly causing a problem in the disassembly of the %fq register.
llvm-svn: 262133
Simon Pilgrim [Sat, 27 Feb 2016 12:33:08 +0000 (12:33 +0000)]
[X86][AVX] Added AVX1 target shuffle combine tests
llvm-svn: 262132
Simon Pilgrim [Sat, 27 Feb 2016 11:49:16 +0000 (11:49 +0000)]
Strip trailing whitespace. NFCI.
llvm-svn: 262131
Chandler Carruth [Sat, 27 Feb 2016 11:07:16 +0000 (11:07 +0000)]
[PM] Loosen the regex for the proxy template name even further to cope
with 'class' keywords in the template arguments and other silliness.
llvm-svn: 262130
Chandler Carruth [Sat, 27 Feb 2016 10:48:14 +0000 (10:48 +0000)]
[PM] Use a boring regex instead of explicitly naming the analysis
manager as some compilers print the typedef name and others print the
"canonical" name of the underlying class template.
This isn't really an important artifact of the test anyways so it seems
fine to just loosen the test assertions here.
llvm-svn: 262129
Chandler Carruth [Sat, 27 Feb 2016 10:45:35 +0000 (10:45 +0000)]
[PM] Provide explicit instantiation declarations and definitions for the
PassManager and AnalysisManager template specializations as well.
llvm-svn: 262128
Chandler Carruth [Sat, 27 Feb 2016 10:38:10 +0000 (10:38 +0000)]
[PM] Provide two templates for the two directionalities of analysis
manager proxies and use those rather than repeating their definition
four times.
There are real differences between the two directions: outer AMs are
const and don't need to have invalidation tracked. But every proxy in
a particular direction is identical except for the analysis manager type
and the IR unit they proxy into. This makes them prime candidates for
nice templates.
I've started introducing explicit template instantiation declarations
and definitions as well because we really shouldn't be emitting all this
everywhere. I'm going to go back and add the same for the other
templates like this in a follow-up patch.
I've left the analysis manager as an opaque type rather than using two
IR units and requiring it to be an AnalysisManager template
specialization. I think its important that users retain the ability to
provide their own custom analysis management layer and provided it has
the appropriate API everything should Just Work.
llvm-svn: 262127
Matt Arsenault [Sat, 27 Feb 2016 09:54:43 +0000 (09:54 +0000)]
AMDGPU: Add builtins for recently added intrinsics
llvm-svn: 262126
Matt Arsenault [Sat, 27 Feb 2016 09:38:05 +0000 (09:38 +0000)]
DAGCombiner: Relax sqrt NaN folding check
This is OK for +0 since compares to +/-0 give the same result.
llvm-svn: 262125
Matt Arsenault [Sat, 27 Feb 2016 09:06:26 +0000 (09:06 +0000)]
AMDGPU: Fix broken/confusing predefined macro
amdgcn should not be defining __R600__
llvm-svn: 262124
Matt Arsenault [Sat, 27 Feb 2016 09:06:22 +0000 (09:06 +0000)]
AMDGPU: Fix inconsistent register name for flat_scratch
llvm-svn: 262123
Matt Arsenault [Sat, 27 Feb 2016 09:06:18 +0000 (09:06 +0000)]
Add __builtin_canonicalize
llvm-svn: 262122
Matt Arsenault [Sat, 27 Feb 2016 08:53:55 +0000 (08:53 +0000)]
AMDGPU: Split vi-insts subtarget feature
This will be more useful for marking builtins acceptable for which
subtargets.
llvm-svn: 262121
Matt Arsenault [Sat, 27 Feb 2016 08:53:52 +0000 (08:53 +0000)]
AMDGPU: Add s_sleep intrinsic
llvm-svn: 262120
Matt Arsenault [Sat, 27 Feb 2016 08:53:46 +0000 (08:53 +0000)]
AMDGPU: Implement readcyclecounter
This matches the behavior of the HSAIL clock instruction.
s_realmemtime is used if the subtarget supports it, and falls
back to s_memtime if not.
Also introduces new intrinsics for each of s_memtime / s_memrealtime.
llvm-svn: 262119
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 07:00:35 +0000 (07:00 +0000)]
CodeGen: Avoid implicit conversion in MachineInstrBuilder, NFC
Avoid another implicit conversion from MachineInstrBundleIterator to
MachineInstr*, this time in MachineInstrBuilder.h (this is in pursuit of
PR26753).
llvm-svn: 262118
Tobias Grosser [Sat, 27 Feb 2016 06:59:30 +0000 (06:59 +0000)]
ScopInfo: Drop some debug statements
This debug output distracts from the -debug-only=polly-scops output. As it is
rather verbose and only really needed for debugging the domain construction
I drop this output. The domain construction is meanwhile stable enough to
not require regular debugging.
llvm-svn: 262117
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 06:51:00 +0000 (06:51 +0000)]
CodeGen: Remove implicit iterator to pointer conversions, NFC
Remove a couple of implicit conversions from MachineInstrBundleIterator
to MachineInstr*.
llvm-svn: 262116
Duncan P. N. Exon Smith [Sat, 27 Feb 2016 06:40:41 +0000 (06:40 +0000)]
CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC
Take MachineInstr by reference instead of by pointer in SlotIndexes and
the SlotIndex wrappers in LiveIntervals. The MachineInstrs here are
never null, so this cleans up the API a bit. It also incidentally
removes a few implicit conversions from MachineInstrBundleIterator to
MachineInstr* (see PR26753).
At a couple of call sites it was convenient to convert to a range-based
for loop over MachineBasicBlock::instr_begin/instr_end, so I added
MachineBasicBlock::instrs.
llvm-svn: 262115
Tobias Grosser [Sat, 27 Feb 2016 06:24:58 +0000 (06:24 +0000)]
LoopGenerators: Expose some parts of the parallel loop generator
Some of this functionality is useful beyond the generation of a normal OpenMP
loop.
llvm-svn: 262114
Tobias Grosser [Sat, 27 Feb 2016 06:04:40 +0000 (06:04 +0000)]
ScopInfo: Add function to invalidate ScopArrayInfo object
In case the underlying basepointer of a ScopArrayInfo object is moved to another
module while the scop is still processed is it necessary to free dependent
ScopArrayInfo objects as they might otherwise be looked accidentally when a
new llvm basepointer value is reassigned the very same memory location as the
llvm value that has been moved earlier.
This function is not yet used in Polly itself, but is useful for external users.
llvm-svn: 262113
Sean Silva [Sat, 27 Feb 2016 06:01:26 +0000 (06:01 +0000)]
[instrprof] Use __{start,stop}_SECNAME on PS4 too.
Summary:
The PS4 linker seems to handle this fine.
Hi David, it seems that indeed most ELF linkers support
__{start,stop}_SECNAME, as our proprietary linker does as well.
This follows the pattern of r250679 w.r.t. the testing.
Maggie, Phillip, Paul: I've tested this with the PS4 SDK 3.5 toolchain
prerelease and it seems to work fine.
Reviewers: davidxl
Subscribers: probinson, phillip.power, MaggieYi
Differential Revision: http://reviews.llvm.org/D17672
llvm-svn: 262112
Mike Aizatsky [Sat, 27 Feb 2016 05:50:40 +0000 (05:50 +0000)]
[sancov] properly initializing pass.
llvm-svn: 262111
Kostya Serebryany [Sat, 27 Feb 2016 05:45:12 +0000 (05:45 +0000)]
[libFuzzer] don't emit callbacks to sanitizer run-time in -fsanitize-coverage=trace-pc mode; update libFuzzer doc for previous commit
llvm-svn: 262110
Philip Reames [Sat, 27 Feb 2016 05:18:30 +0000 (05:18 +0000)]
Suppress an uncovered switch warning [NFC]
llvm-svn: 262109
Chandler Carruth [Sat, 27 Feb 2016 04:34:07 +0000 (04:34 +0000)]
[LICM] Teach LICM how to handle cases where the alias set tracker was
merged into a loop that was subsequently unrolled (or otherwise nuked).
In this case it can't merge in the ASTs for any remaining nested loops,
it needs to re-add their instructions dircetly.
The fix is very isolated, but I've pulled the code for merging blocks
into the AST into a single place in the process. The only behavior
change is in the case which would have crashed before.
This fixes a crash reported by Mikael Holmen on the list after r261316
restored much of the loop pass pipelining and allowed us to actually do
this kind of nested transformation sequenc. I've taken that test case
and further reduced it into the somewhat twisty maze of loops in the
included test case. This does in fact trigger the bug even in this
reduced form.
llvm-svn: 262108
Kostya Serebryany [Sat, 27 Feb 2016 03:14:23 +0000 (03:14 +0000)]
[libFuzzer] fixing the bot
llvm-svn: 262106
Richard Smith [Sat, 27 Feb 2016 02:36:43 +0000 (02:36 +0000)]
Fix bug in using shadow decl checking: a using shadow decl should not conflict
with a prior UsingDecl -- those should not even really be found by the lookup
here, except that we use the same lookup results for two different checks, and
the other check needs them.
This happens to work in *almost all* cases, because either the lookup results
list the UsingDecl first (and the NonTag result gets replaced by something
else) or because the problematic declaration is a function (which causes us to
use different logic to detect conflicts). This can also be triggered from a
state only reachable through modules (where the name lookup results can contain
multiple UsingDecls in the same scope).
llvm-svn: 262105
Mike Aizatsky [Sat, 27 Feb 2016 02:21:44 +0000 (02:21 +0000)]
[sancov] print_coverage_points command.
Differential Revision: http://reviews.llvm.org/D17670
llvm-svn: 262104
Mike Aizatsky [Sat, 27 Feb 2016 02:10:27 +0000 (02:10 +0000)]
[sancov] do not instrument nodes that are full pre-dominators
Summary:
Without tree pruning clang has 2,667,552 points.
Wiht only dominators pruning: 1,515,586.
With both dominators & predominators pruning: 1,340,534.
Differential Revision: http://reviews.llvm.org/D17671
llvm-svn: 262103
Kostya Serebryany [Sat, 27 Feb 2016 01:50:16 +0000 (01:50 +0000)]
[libFuzzer] speedup path coverage handling
llvm-svn: 262102
Hongbin Zheng [Sat, 27 Feb 2016 01:50:01 +0000 (01:50 +0000)]
Update the fine-grain dependences analysis test case.
llvm-svn: 262101
Hongbin Zheng [Sat, 27 Feb 2016 01:49:58 +0000 (01:49 +0000)]
Enable llvm's isa/cast/dyn_cast on MemAccInst.
Differential Revision: http://reviews.llvm.org/D17250
llvm-svn: 262100
Junmo Park [Sat, 27 Feb 2016 01:10:43 +0000 (01:10 +0000)]
Minor code cleanup. NFC.
llvm-svn: 262096
Reid Kleckner [Sat, 27 Feb 2016 00:53:54 +0000 (00:53 +0000)]
[InstCombine] Be more conservative about removing stackrestore
We ended up removing a save/restore pair around an inalloca call,
leading to a miscompile in Chromium.
llvm-svn: 262095
Samuel Antao [Sat, 27 Feb 2016 00:01:58 +0000 (00:01 +0000)]
[OpenMP] Fix parsing of delete map clause modifier in C++ mode.
Summary: The map modifier 'delete' is parser in c++ mode as a delete keyword, which requires special handling in the map clause parsing.
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: cfe-commits, fraggamuffin, caomhin
Differential Revision: http://reviews.llvm.org/D17629
llvm-svn: 262094
Paul Robinson [Fri, 26 Feb 2016 23:44:10 +0000 (23:44 +0000)]
Revert r262092, caught LLD tests
llvm-svn: 262093
Paul Robinson [Fri, 26 Feb 2016 23:34:02 +0000 (23:34 +0000)]
[FileCheck] Abort if -NOT is combined with another suffix.
Combinations of suffixes that look useful actually are ignored;
complaining about them will avoid mistakes.
Differential Revision: http://reviews.llvm.org/D17587
llvm-svn: 262092
Cong Hou [Fri, 26 Feb 2016 23:25:30 +0000 (23:25 +0000)]
Fix a bug in isVectorReductionOp() in SelectionDAGBuilder.cpp that may cause assertion failure on AArch64.
llvm-svn: 262091
Greg Clayton [Fri, 26 Feb 2016 23:20:08 +0000 (23:20 +0000)]
Make LLDB safer to use with respect to the global destructor chain.
llvm-svn: 262090
Ahmed Bougacha [Fri, 26 Feb 2016 23:00:03 +0000 (23:00 +0000)]
[X86] Move an encoding test from CodeGen to MC. NFC.
llvm-svn: 262089
Ahmed Bougacha [Fri, 26 Feb 2016 23:00:00 +0000 (23:00 +0000)]
[X86] Delete old redundant test. NFC.
llvm-svn: 262088
Ahmed Bougacha [Fri, 26 Feb 2016 22:59:57 +0000 (22:59 +0000)]
[X86] Fix a stale comment. NFC.
llvm-svn: 262087
Ahmed Bougacha [Fri, 26 Feb 2016 22:59:41 +0000 (22:59 +0000)]
[X86] Remove the unused SDTX86atomicBinary. NFC.
llvm-svn: 262086
Philip Reames [Fri, 26 Feb 2016 22:53:59 +0000 (22:53 +0000)]
[LVI] Extend select handling to catch min/max/clamp idioms
Most of this is fairly straight forward. Add handling for min/max via existing matcher utility and ConstantRange routines. Add handling for clamp by exploiting condition constraints on inputs.
Note that I'm only handling two constant ranges at this point. It would be reasonable to consider treating overdefined as a full range if the instruction is typed as an integer, but that should be a separate change.
Differential Revision: http://reviews.llvm.org/D17184
llvm-svn: 262085
Kostya Serebryany [Fri, 26 Feb 2016 22:42:23 +0000 (22:42 +0000)]
[libFuzzer] add -print_final_stats=1 flag
llvm-svn: 262084
Simon Pilgrim [Fri, 26 Feb 2016 22:28:50 +0000 (22:28 +0000)]
Strip trailing whitespace. NFCI.
llvm-svn: 262083
Eugene Zelenko [Fri, 26 Feb 2016 22:26:21 +0000 (22:26 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in remaining files in source/Plugins/ABI; other minor fixes.
llvm-svn: 262082