Sam Kolton [Fri, 9 Sep 2016 10:08:02 +0000 (10:08 +0000)]
[AMDGPU] Assembler: rename amd_kernel_code_t asm names according to spec
Summary:
Also removed duplicate code from AMDGPUTargetAsmStreamer.
This change only change how amd_kernel_code_t is parsed and printed. No variable names are changed.
Reviewers: vpykhtin, tstellarAMD
Subscribers: arsenm, wdng, nhaehnle
Differential Revision: https://reviews.llvm.org/D24296
llvm-svn: 281028
James Molloy [Fri, 9 Sep 2016 09:51:06 +0000 (09:51 +0000)]
[Thumb1] Teach optimizeCompareInstr about thumb1 compares
This avoids us doing a completely unneeded "cmp r0, #0" after a flag-setting instruction if we only care about the Z or C flags.
Add LSL/LSR to the whitelist while we're here and add testing. This code could really do with a spring clean.
llvm-svn: 281027
Nitesh Jain [Fri, 9 Sep 2016 09:50:33 +0000 (09:50 +0000)]
[LLDB][MIPS] Fix TestLldbGdbServer.py failure
Subscribers: jaydeep, bhushan, slthakur, lldb-commits
llvm-svn: 281026
Pavel Labath [Fri, 9 Sep 2016 09:49:54 +0000 (09:49 +0000)]
Fix new gdb-remote client unit test for windows
The behaviour of FileSpec differed between host OS versions. Hardcode the path
syntax to posix, as we don't care about that in this test.
llvm-svn: 281025
Eugene Leviant [Fri, 9 Sep 2016 09:46:16 +0000 (09:46 +0000)]
Linker script: implement AT [ (address) ] for PHDR
Differential revision: https://reviews.llvm.org/D24340
llvm-svn: 281024
Sam Kolton [Fri, 9 Sep 2016 09:37:51 +0000 (09:37 +0000)]
[AMDGPU] Assembler: match e32 VOP instructions before e64.
Summary:
Split assembler match table in 4 tables with assembler variants:
Default - all instructions except VOP3, SDWA and DPP
- VOP3
- SDWA
- DPP
First match Default table then VOP3, SDWA and DPP.
Reviewers: tstellarAMD, artem.tamazov, vpykhtin
Subscribers: arsenm, wdng, nhaehnle, AMDGPU
Differential Revision: https://reviews.llvm.org/D24252
llvm-svn: 281023
Simon Dardis [Fri, 9 Sep 2016 09:22:52 +0000 (09:22 +0000)]
[mips] Fix c.<cc>.<fmt> instruction definition.
As part of this effort, remove MipsFCmp nodes and use tablegen
patterns rather than custom lowering through C++.
Unexpectedly, this improves codesize for microMIPS as previous floating
point setcc expansions would materialize 0 and 1 into GPRs before using
the relevant mov[tf].[sd] instruction. Now $zero is used directly.
Reviewers: dsanders, vkalintiris, zoran.jovanovic
Differential Review: https://reviews.llvm.org/D23118
llvm-svn: 281022
Chris Dewhurst [Fri, 9 Sep 2016 09:08:13 +0000 (09:08 +0000)]
[Sparc][LEON] Unit test for CASA instruction supported by some LEON processors added.
llvm-svn: 281021
Gor Nishanov [Fri, 9 Sep 2016 05:39:00 +0000 (05:39 +0000)]
[Coroutines] Part13: Handle single edge PHINodes across suspends
Summary:
If one of the uses of the value is a single edge PHINode, handle it.
Original:
%val = something
<suspend>
%p = PHINode [%val]
After Spill + Part13:
%val = something
%slot = gep val.spill.slot
store %val, %slot
<suspend>
%p = load %slot
Plus tiny fixes/changes:
* use correct index for coro.free in CoroCleanup
* fixup id parameter in coro.free to allow authoring coroutine in plain C with __builtins
Reviewers: majnemer
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D24242
llvm-svn: 281020
Amaury Sechet [Fri, 9 Sep 2016 04:50:38 +0000 (04:50 +0000)]
Rationalise the attribute getter/setter methods on Function and CallSite.
Summary:
While woring on mapping attributes in the C API, it clearly appeared that the recent changes in the API on the C++ side left Function and Call/Invoke with an attribute API that grew in an ad hoc manner. This makes it difficult to work with it, because one doesn't know which overloads exists and which do not.
Make sure that getter/setter function exists for both enum and string version. Remove inconsistent getter/setter, unless they have many callsites.
This should make it easier to work with attributes in the future.
This doesn't change how attribute works.
Reviewers: bkramer, whitequark, mehdi_amini, void
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D21514
llvm-svn: 281019
Amaury Sechet [Fri, 9 Sep 2016 04:42:49 +0000 (04:42 +0000)]
Update clang for D21514. NFC
Summary: As per title.
Reviewers: ahatanak, bkramer, whitequark, mehdi_amini, void
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D21515
llvm-svn: 281018
George Burgess IV [Fri, 9 Sep 2016 02:45:48 +0000 (02:45 +0000)]
[Docs] Fix typos, remove trailing whitespace.
Avoided wrapping NullabilityDocs at 80cols, since that would've made
this diff much bigger, and never-ending lines seems to be the style for
many of the null-related docs.
llvm-svn: 281017
Kostya Serebryany [Fri, 9 Sep 2016 02:38:28 +0000 (02:38 +0000)]
[libFuzzer] improve -print_pcs to not print new PCs coming from libFuzzer itself
llvm-svn: 281016
Kostya Serebryany [Fri, 9 Sep 2016 02:13:27 +0000 (02:13 +0000)]
[sanitizer] fix a potential buffer overflow due to __sanitizer_symbolize_pc (need to put a zero after strncmp). LOL
llvm-svn: 281015
Kostya Serebryany [Fri, 9 Sep 2016 01:57:38 +0000 (01:57 +0000)]
[libFuzzer] remove unneeded call
llvm-svn: 281014
Craig Topper [Fri, 9 Sep 2016 01:36:10 +0000 (01:36 +0000)]
[AVX-512] Add VPCMP instructions to the load folding tables and make them commutable.
llvm-svn: 281013
Craig Topper [Fri, 9 Sep 2016 01:36:04 +0000 (01:36 +0000)]
[AVX-512] Add more integer vector comparison tests with loads. Some of these show opportunities where we can commute to fold loads.
Commutes will be added in a followup commit.
llvm-svn: 281012
Vedant Kumar [Fri, 9 Sep 2016 01:32:55 +0000 (01:32 +0000)]
[llvm-cov] Emit a summary in the report directory's index
llvm-cov writes out an index file in '-output-dir' mode, albeit not a
very informative one. Try to fix that by using the CoverageReport API to
include some basic summary information in the index file.
llvm-svn: 281011
Vedant Kumar [Fri, 9 Sep 2016 01:32:51 +0000 (01:32 +0000)]
[llvm-cov] Constify some methods (NFC)
llvm-svn: 281010
Vedant Kumar [Fri, 9 Sep 2016 01:32:49 +0000 (01:32 +0000)]
[llvm-cov] Add an API to prepare file reports (NFC)
It would be nice to prepare file reports (using the CoverageReport API)
without actually rendering them to the console. I plan on using this to
flesh out the 'index' files in the coverage views.
llvm-svn: 281009
Vedant Kumar [Fri, 9 Sep 2016 01:32:47 +0000 (01:32 +0000)]
[llvm-cov] Speculate fix for a Windows-only test (NFC)
This test should have broken after r280896. Fix up the test case
speculatively, since I don't have a way to test it.
I wonder why I didn't get any angry bot emails about this. Maybe none of
the win32 bots test llvm-cov? That could explain it, since the test says
it 'REQUIRES: system-windows', which is restricted to win32 hosts.
Also: why is 'system-windows' not defined for non-win32 Windows bots?
llvm-svn: 281008
Kostya Serebryany [Fri, 9 Sep 2016 01:17:03 +0000 (01:17 +0000)]
[libFuzzer] remove use_traces=1 since use_value_profile seems to be strictly better
llvm-svn: 281007
David Majnemer [Fri, 9 Sep 2016 01:07:01 +0000 (01:07 +0000)]
[X86] Tighten up a comment which confused x64 ABI terminology.
The x64 ABI has two major function types:
- frame functions
- leaf functions
A frame function is one which requires a stack frame. A leaf function
is one which does not. A frame function may or may not have a frame
pointer.
A leaf function does not require a stack frame and may never modify SP
except via a return (RET, tail call via JMP).
A frame function which has a frame pointer is permitted to use the LEA
instruction in the epilogue, a frame function without which doesn't
establish a frame pointer must use ADD to adjust the stack pointer epilogue.
Fun fact: Leaf functions don't require a function table entry
(associated PDATA/XDATA).
llvm-svn: 281006
Michael Kuperstein [Fri, 9 Sep 2016 00:49:29 +0000 (00:49 +0000)]
[X86] Add more baseline tests for "irregular" shuffles. NFC.
This adds more tests for shuffles where the output width does not match
the input width and/or the output is generated from more than two inputs.
llvm-svn: 281005
Rui Ueyama [Fri, 9 Sep 2016 00:25:56 +0000 (00:25 +0000)]
Fix -output option.
Usually, options that are longer than one character can be preceded
either by "-" or "--", but options starting with "o" are exceptions
because they conflict with "-o" option. They have to be preceded by
"--".
llvm-svn: 281004
Hans Wennborg [Thu, 8 Sep 2016 23:35:10 +0000 (23:35 +0000)]
Win64: Don't use REX prefix for direct tail calls
The REX prefix should be used on indirect jmps, but not direct ones.
For direct jumps, the unwinder looks at the offset to determine if
it's inside the current function.
Differential Revision: https://reviews.llvm.org/D24359
llvm-svn: 281003
Mike Aizatsky [Thu, 8 Sep 2016 23:29:37 +0000 (23:29 +0000)]
.clang-tidy: parameters and members should be CamelCased.
Summary: Not sure why is it missing.
Differential Revision: https://reviews.llvm.org/D24364
llvm-svn: 281002
Rui Ueyama [Thu, 8 Sep 2016 23:26:54 +0000 (23:26 +0000)]
Fix bug in -nostdlib.
We still have to skip a token inside SEARCH_DIR() when -nostdlib is
specified. Previuosly, we didn't skip it, so it caused a parse error.
llvm-svn: 281001
Saleem Abdulrasool [Thu, 8 Sep 2016 23:17:34 +0000 (23:17 +0000)]
llvm-objdump: add missing ) in help output, NFC
Add a missing ')' in the help output. NFC.
llvm-svn: 281000
Richard Smith [Thu, 8 Sep 2016 23:14:54 +0000 (23:14 +0000)]
C++ Modules TS: Add parsing and some semantic analysis support for
export-declarations. These don't yet have an effect on name visibility;
we still export everything by default.
llvm-svn: 280999
Vedant Kumar [Thu, 8 Sep 2016 22:53:19 +0000 (22:53 +0000)]
[Driver] Report invalid -mtune/-mcpu parameters when -arch=arm64
Differential Revision: https://reviews.llvm.org/D23643
llvm-svn: 280998
Albert Gutowski [Thu, 8 Sep 2016 22:32:19 +0000 (22:32 +0000)]
Implement MS _rot intrinsics
Reviewers: thakis, Prazek, compnerd, rnk
Subscribers: majnemer, cfe-commits
Differential Revision: https://reviews.llvm.org/D24311
llvm-svn: 280997
Kostya Serebryany [Thu, 8 Sep 2016 22:21:13 +0000 (22:21 +0000)]
[libFuzzer] add missing docs
llvm-svn: 280996
Dehao Chen [Thu, 8 Sep 2016 21:53:33 +0000 (21:53 +0000)]
Remove debug info when hoisting instruction from then/else branch.
Summary: The hoisted instruction is executed speculatively. It could affect the debugging experience as user would see gdb go into code that may not be expected to execute. It will also affect sample profile accuracy by assigning incorrect frequency to source within then/else branch.
Reviewers: davidxl, dblaikie, chandlerc, kcc, echristo
Subscribers: mehdi_amini, probinson, eric_niebler, andreadb, llvm-commits
Differential Revision: https://reviews.llvm.org/D24164
llvm-svn: 280995
Rui Ueyama [Thu, 8 Sep 2016 21:46:21 +0000 (21:46 +0000)]
Define writeUint and use it. NFC.
llvm-svn: 280994
Sanjay Patel [Thu, 8 Sep 2016 21:40:21 +0000 (21:40 +0000)]
[InstCombine] regenerate checks
llvm-svn: 280993
Matthew Simpson [Thu, 8 Sep 2016 21:38:26 +0000 (21:38 +0000)]
[LV] Ensure proper handling of multi-use case when collecting uniforms
The test case included in r280979 wasn't checking what it was supposed to be
checking for the predicated store case. Fixing the test revealed that the
multi-use case (when a pointer is used by both vectorized and scalarized memory
accesses) wasn't being handled properly. We can't skip over
non-consecutive-like pointers since they may have looked consecutive-like with
a different memory access.
llvm-svn: 280992
Sanjay Patel [Thu, 8 Sep 2016 21:32:21 +0000 (21:32 +0000)]
[InstCombine] regenerate checks
llvm-svn: 280991
Davide Italiano [Thu, 8 Sep 2016 21:18:38 +0000 (21:18 +0000)]
[ELF] Fix DT_NEEDED value.
Differential Revision: https://reviews.llvm.org/D24363
llvm-svn: 280990
Ed Maste [Thu, 8 Sep 2016 21:06:29 +0000 (21:06 +0000)]
ELF: clarify error when we don't know the output format
lld differs from GNU ld in that it does not have a built-in default
target emulation. Emulation is always specified via the -m option, or
obtained from the object file(s) being linked. In most cases at least
one ELF object is included in the link, so the emulation is known.
When using lld's (not yet committed) -b binary support with -r, to
convert a binary file into an ELF object we do not have a known
emulation. The error message previously emitted in this case
"-m or at least a .o file required" is accurate but does not offer
much insight. Add text to the error message to give a hint why -m or an
object file is required.
Differential Revision: https://reviews.llvm.org/D24348
llvm-svn: 280989
Saleem Abdulrasool [Thu, 8 Sep 2016 20:52:48 +0000 (20:52 +0000)]
support: clean up MSVC support
Visual Studio 2013 (CRT version 12) added support for many C99 long long and
long double functions. Visual Studio 2015 (CRT version 14) increased C99 and C11
compliance further. Since we don't support Visual Studio versions older than
2013, we can considerably clean up the support header.
Patch by Shoaib Meenai!
llvm-svn: 280988
Krzysztof Parzyszek [Thu, 8 Sep 2016 20:48:42 +0000 (20:48 +0000)]
[RDF] Further improve handling of multiple phis reached from shadows
llvm-svn: 280987
Rafael Espindola [Thu, 8 Sep 2016 20:47:52 +0000 (20:47 +0000)]
Reduce templating. NFC.
llvm-svn: 280986
Rui Ueyama [Thu, 8 Sep 2016 20:35:29 +0000 (20:35 +0000)]
Define '-undefined foo' as an alias to '-undefined=foo'.
llvm-svn: 280985
Vassil Vassilev [Thu, 8 Sep 2016 20:34:41 +0000 (20:34 +0000)]
[modules] Apply ODR merging for function scoped tags only in C++ mode.
In C mode, if we have a visible declaration but not a visible definition, a tag
defined in the declaration should be have a visible definition. In C++ we rely
on the ODR merging, whereas in C we cannot because each declaration of a
function gets its own set of declarations in its prototype scope.
Patch developed in collaboration with Richard Smith!
llvm-svn: 280984
Ed Maste [Thu, 8 Sep 2016 19:36:22 +0000 (19:36 +0000)]
ELF: Report original emulation name in "unknown emulation" error
A trailing _fbsd is stripped from emulation names, but if the result was
still not a valid emulation the error was somewhat confusing.
For example,
% ld.lld -m elf_amd64_fbsd
unknown emulation: elf_amd64
Use the original emulation name in error messages.
Differential Revision: https://reviews.llvm.org/D24357
llvm-svn: 280983
Ed Maste [Thu, 8 Sep 2016 19:30:47 +0000 (19:30 +0000)]
ELF: accept -m elf_amd64 as an alias for -m elf_x86_64
In the FreeBSD world x86_64 still has its original name, amd64. Accept
it as an alias.
Differential Revision: https://reviews.llvm.org/D24356
llvm-svn: 280982
Vedant Kumar [Thu, 8 Sep 2016 19:18:23 +0000 (19:18 +0000)]
[llvm-cov] Fix issues with segment highlighting in the html view
The text and html coverage views take different approaches to emitting
highlighted regions. That's because this problem is easier in the text
view: there's no need to worry about escaping text or adding tooltip
content to a highlighted snippet.
Unfortunately, the html view didn't get region highlighting quite right.
This patch fixes the situation, bringing parity between the two views.
llvm-svn: 280981
Evgeniy Stepanov [Thu, 8 Sep 2016 19:16:01 +0000 (19:16 +0000)]
Fix tsan-go build.
Disable the new abort-in-SIGABRT code under SANITIZER_GO.
llvm-svn: 280980
Matthew Simpson [Thu, 8 Sep 2016 19:11:07 +0000 (19:11 +0000)]
[LV] Don't mark pointers used by scalarized memory accesses uniform
Previously, all consecutive pointers were marked uniform after vectorization.
However, if a consecutive pointer is used by a memory access that is eventually
scalarized, the pointer won't remain uniform after all. An example is
predicated stores. Even though a predicated store may be consecutive, it will
still be scalarized, making it's pointer operand non-uniform.
This patch updates the logic in collectLoopUniforms to consider the cases where
a memory access may be scalarized. If a memory access may be scalarized, its
pointer operand is not marked uniform. The determination of whether a given
memory instruction will be scalarized or not has been moved into a common
function that is used by the vectorizer, cost model, and legality analysis.
Differential Revision: https://reviews.llvm.org/D24271
llvm-svn: 280979
Zachary Turner [Thu, 8 Sep 2016 18:36:55 +0000 (18:36 +0000)]
[pdb] Make YamlTypeDumperCallbacks reuse *this.
Previously we were making new instances of YamlTypeDumperCallbacks
in order to recurse down and serialize / deserialize nested
records such as field lists. This meant you could not pass
context from a higher operation to a lower operation because
it would be using a new instance of the visitor callback
delegate.
YAMLIO library was updated to support context-sensitive mappings,
so now we can reuse the same instance of the visitor callback
delegate even for nested operations.
llvm-svn: 280978
Zachary Turner [Thu, 8 Sep 2016 18:22:44 +0000 (18:22 +0000)]
[YAMLIO] Add the ability to map with context.
mapping a yaml field to an object in code has always been
a stateless operation. You could still pass state by using the
`setContext` function of the YAMLIO object, but this represented
global state for the entire yaml input. In order to have
context-sensitive state, it is necessary to pass this state in
at the granularity of an individual mapping.
This patch adds support for this type of context-sensitive state.
You simply pass an additional argument of type T to the
`mapRequired` or `mapOptional` functions, and provided you have
specialized a `MappingContextTraits<U, T>` class with the
appropriate mapping function, you can pass this context into
the mapping function.
Reviewed By: chandlerc
Differential Revision: https://reviews.llvm.org/D24162
llvm-svn: 280977
Bill Seurer [Thu, 8 Sep 2016 18:09:47 +0000 (18:09 +0000)]
[powerpc] Move #if to appease warnings-as-errors tests
Previous patch added a #if which causes some unused identifier warnings.
llvm-svn: 280976
Ahmed Bougacha [Thu, 8 Sep 2016 18:02:14 +0000 (18:02 +0000)]
Revert "Resubmit "Add a test for clang-tidy using the clang-cl driver.""
This reverts commit r280839.
It's problematic on OS X, where the '/Users/...' paths are interpreted
as '/U' options.
Investigation ongoing in http://llvm.org/PR30328.
llvm-svn: 280975
Matt Arsenault [Thu, 8 Sep 2016 17:44:36 +0000 (17:44 +0000)]
AMDGPU: Sign extend constants when splitting them
This will confuse later passes which try to look at the
immediate value and don't truncate first.
llvm-svn: 280974
Krzysztof Parzyszek [Thu, 8 Sep 2016 17:42:14 +0000 (17:42 +0000)]
[Hexagon] Expand sext- and zextloads of vector types, not just extloads
Recent change exposed this issue, breaking the Hexagon buildbots.
llvm-svn: 280973
Matt Arsenault [Thu, 8 Sep 2016 17:35:41 +0000 (17:35 +0000)]
AMDGPU: Try to commute when selecting s_addk_i32/s_mulk_i32
llvm-svn: 280972
Eric Christopher [Thu, 8 Sep 2016 17:27:03 +0000 (17:27 +0000)]
AArch64 .arch directive - Include default arch attributes with extensions.
Fix the .arch asm parser to use the full set of features for the architecture
and any extensions on the command line. Add and update testcases accordingly
as well as add an extension that was used but not supported.
llvm-svn: 280971
Matt Arsenault [Thu, 8 Sep 2016 17:19:29 +0000 (17:19 +0000)]
AMDGPU: Support commuting with immediate in src0
llvm-svn: 280970
Renato Golin [Thu, 8 Sep 2016 17:13:15 +0000 (17:13 +0000)]
Revert "[XRay] ARM 32-bit no-Thumb support in compiler-rt"
This reverts commit r280890, as the related LLVM commit broke the thumb bots.
llvm-svn: 280969
Renato Golin [Thu, 8 Sep 2016 17:12:32 +0000 (17:12 +0000)]
Revert "[XRay] ARM 32-bit no-Thumb support in Clang"
This reverts commit r280889, as the original LLVM commits broke the thumb
buildbots.
llvm-svn: 280968
Renato Golin [Thu, 8 Sep 2016 17:10:39 +0000 (17:10 +0000)]
Revert "[XRay] ARM 32-bit no-Thumb support in LLVM"
And associated commits, as they broke the Thumb bots.
This reverts commit r280935.
This reverts commit r280891.
This reverts commit r280888.
llvm-svn: 280967
Balaram Makam [Thu, 8 Sep 2016 17:08:20 +0000 (17:08 +0000)]
[LoopDataPrefetch] Use range based for loop; NFCI
Switch to range based for loop.
No functional change, but more readable code.
llvm-svn: 280966
Pavel Labath [Thu, 8 Sep 2016 16:58:30 +0000 (16:58 +0000)]
Fix MSVC error from r280919
MSVC did not understand my brace-initializer syntax. :/
llvm-svn: 280965
Sanjay Patel [Thu, 8 Sep 2016 16:54:02 +0000 (16:54 +0000)]
[InstCombine] return a vector-safe true/false constant
I introduced this potential bug by missing this diff in:
https://reviews.llvm.org/rL280873
...however, I'm not sure how to reach this code path with a regression test.
We may be able to remove this code and assume that the transform to a constant
is always handled by InstSimplify?
llvm-svn: 280964
Dehao Chen [Thu, 8 Sep 2016 16:53:40 +0000 (16:53 +0000)]
Add unittest for r280760
llvm-svn: 280963
Reid Kleckner [Thu, 8 Sep 2016 16:46:06 +0000 (16:46 +0000)]
Fix linker warning about sanitizer_common_nolibc functions on Windows
llvm-svn: 280962
Matt Arsenault [Thu, 8 Sep 2016 16:37:56 +0000 (16:37 +0000)]
Replace nextafter implementation
This one passes conformance.
llvm-svn: 280961
Simon Pilgrim [Thu, 8 Sep 2016 16:32:37 +0000 (16:32 +0000)]
[InstCombine][X86] Regenerate masked memory op combine tests
llvm-svn: 280960
Simon Pilgrim [Thu, 8 Sep 2016 16:30:46 +0000 (16:30 +0000)]
[InstCombine][X86] Regenerate vperm2f128/vperm2i128 combine tests
llvm-svn: 280959
Reid Kleckner [Thu, 8 Sep 2016 16:25:34 +0000 (16:25 +0000)]
Really fix warnings about passing -std=gnu99 to MSVC
llvm-svn: 280958
Simon Pilgrim [Thu, 8 Sep 2016 16:15:21 +0000 (16:15 +0000)]
[InstCombine][X86] Regenerate insertps combine tests
llvm-svn: 280957
Vedant Kumar [Thu, 8 Sep 2016 16:14:14 +0000 (16:14 +0000)]
[Coverage] Delete some dead code (NFC)
llvm-svn: 280956
Jason Henline [Thu, 8 Sep 2016 16:12:33 +0000 (16:12 +0000)]
Add streamexecutor-config
Summary:
Similar to llvm-config, gets command-line flags that are needed to build
applications linking against StreamExecutor.
Reviewers: jprice, jlebar
Subscribers: beanz, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24302
llvm-svn: 280955
Qin Zhao [Thu, 8 Sep 2016 16:09:46 +0000 (16:09 +0000)]
Revert "[ESan][MIPS] Adds support for MIPS64"
Summary:
This reverts commit
62b3eecdbe72af0255f0639b0446087a47efbf48. (D23799)
The CL cause 13 ESan test failure on x86_64:
Failing Tests (13):
EfficiencySanitizer-x86_64 :: TestCases/large-stack-linux.c
EfficiencySanitizer-x86_64 :: TestCases/libc-intercept.c
EfficiencySanitizer-x86_64 :: TestCases/mmap-shadow-conflict.c
EfficiencySanitizer-x86_64 :: TestCases/struct-simple.cpp
EfficiencySanitizer-x86_64 :: TestCases/verbose-simple.c
EfficiencySanitizer-x86_64 :: TestCases/workingset-early-fault.c
EfficiencySanitizer-x86_64 :: TestCases/workingset-memset.cpp
EfficiencySanitizer-x86_64 :: TestCases/workingset-midreport.cpp
EfficiencySanitizer-x86_64 :: TestCases/workingset-samples.cpp
EfficiencySanitizer-x86_64 :: TestCases/workingset-signal-posix.cpp
EfficiencySanitizer-x86_64 :: TestCases/workingset-simple.cpp
EfficiencySanitizer-x86_64 :: Unit/circular_buffer.cpp
EfficiencySanitizer-x86_64 :: Unit/hashtable.cpp
Unexpected Failures: 13
Reviewers: bruening, slthakur
Subscribers: sdardis, kubabrecka, beanz
Differential Revision: https://reviews.llvm.org/D24350
llvm-svn: 280954
Francis Ricci [Thu, 8 Sep 2016 15:57:22 +0000 (15:57 +0000)]
[compiler-rt] Don't use -fPIC when building for Windows
Summary: This flag doesn't make sense on Windows systems.
Reviewers: beanz, kubabrecka, compnerd
Subscribers: dberris, llvm-commits, beanz
Differential Revision: https://reviews.llvm.org/D24320
llvm-svn: 280953
Sam Kolton [Thu, 8 Sep 2016 15:50:52 +0000 (15:50 +0000)]
[TableGen] AsmMatcher: Add AsmVariantName to Instruction class.
Summary:
This allows specifying instructions that are available only in specific assembler variant. If AsmVariantName is specified then instruction will be presented only in MatchTable for this variant. If not specified then assembler variants will be determined based on AsmString.
Also this allows splitting assembler match tables in same way as it is done in dissasembler.
Reviewers: ab, tstellarAMD, craig.topper, vpykhtin
Subscribers: wdng
Differential Revision: https://reviews.llvm.org/D24249
llvm-svn: 280952
Reid Kleckner [Thu, 8 Sep 2016 15:45:27 +0000 (15:45 +0000)]
Remove restriction that 'sret' must be on the first parameter
On Windows, it is often applied to the second parameter, and the x86
backend is prepared to deal with sret appearing on any parameter.
Other backends assume it only appears on parameter zero, but those are
target-specific requirements, and not an IR-level rule.
llvm-svn: 280951
Reid Kleckner [Thu, 8 Sep 2016 15:40:43 +0000 (15:40 +0000)]
Give an x86 assembler test a triple
llvm-svn: 280950
Dehao Chen [Thu, 8 Sep 2016 15:25:12 +0000 (15:25 +0000)]
revert r280427
Refactor replaceDominatedUsesWith to have a flag to control whether to replace uses in BB itself.
Summary: This is in preparation for LoopSink pass which calls replaceDominatedUsesWith to update after sinking.
llvm-svn: 280949
Michael Kruse [Thu, 8 Sep 2016 15:02:36 +0000 (15:02 +0000)]
Add -polly-flatten-schedule pass.
The -polly-flatten-schedule pass reduces the number of scattering
dimensions in its isl_union_map form to make them easier to understand.
It is not meant to be used in production, only for debugging and
regression tests.
To illustrate, how it can make sets simpler, here is a lifetime set
used computed by the porposed DeLICM pass without flattening:
{ Stmt_reduction_for[0, 4] -> [0, 2, o2, o3] : o2 < 0;
Stmt_reduction_for[0, 4] -> [0, 1, o2, o3] : o2 >= 5;
Stmt_reduction_for[0, 4] -> [0, 1, 4, o3] : o3 > 0;
Stmt_reduction_for[0, i1] -> [0, 1, i1, 1] : 0 <= i1 <= 3;
Stmt_reduction_for[0, 4] -> [0, 2, 0, o3] : o3 <= 0 }
And here the same lifetime for a semantically identical one-dimensional
schedule:
{ Stmt_reduction_for[0, i1] -> [2 + 3i1] : 0 <= i1 <= 4 }
Differential Revision: https://reviews.llvm.org/D24310
llvm-svn: 280948
Rafael Espindola [Thu, 8 Sep 2016 14:50:55 +0000 (14:50 +0000)]
Handle globs in global symbol names.
Fixes pr28775.
llvm-svn: 280947
Tobias Grosser [Thu, 8 Sep 2016 14:34:54 +0000 (14:34 +0000)]
GICHelper: Correctly assign return value
... to preserve reference counting logic.
In practice the missing assignment would not have caused any issues. We still
fix it as the code is wrong and it also causes noise in the clang static
analysis runs.
llvm-svn: 280946
Kuba Brecka [Thu, 8 Sep 2016 14:32:11 +0000 (14:32 +0000)]
[asan] Fix handle_abort_on_error.cc test on Darwin
r280885 added a testcase for handle_abort, which is broken on macOS, let’s add this support into sanitizer_mac.cc.
Differential Revision: https://reviews.llvm.org/D24344
llvm-svn: 280945
Aditya Kumar [Thu, 8 Sep 2016 14:31:44 +0000 (14:31 +0000)]
Added 'inline' attribute to basic_string's destructor
Author: laxmansole
Reviewers: howard.hinnant
mclow.lists
Subscribers: EricWF, flyingforyou, evandro
Differential Revision: https://reviews.llvm.org/D22834
Currently basic_string's destructor is not getting inlined. So adding 'inline' attribute to ~basic_string().
Worked in collaboration with Aditya Kumar.
llvm-svn: 280944
Tobias Grosser [Thu, 8 Sep 2016 14:31:31 +0000 (14:31 +0000)]
SCEVAffinator: Add missing __isl_take annotations
llvm-svn: 280943
Valentina Giusti [Thu, 8 Sep 2016 14:16:45 +0000 (14:16 +0000)]
Fix for rL280668, Intel(R) Memory Protection Extensions (Intel(R) MPX) support.
Summary: Signed-off-by: Valentina Giusti <valentina.giusti@intel.com>
Reviewers: dvlahovski, granata.enrico, clayborg, labath
Subscribers: lldb-commits
Differential Revision: https://reviews.llvm.org/D24255
llvm-svn: 280942
Rafael Espindola [Thu, 8 Sep 2016 14:11:08 +0000 (14:11 +0000)]
Use a protected destructor instead of a virtual one.
llvm-svn: 280941
Tobias Grosser [Thu, 8 Sep 2016 14:08:07 +0000 (14:08 +0000)]
ScopInfo: Make clear that no double-free problem exists
When running the clang static analyser to check for memory issues, this code
originally showed a double free, as the analyser was unable to understand that
isl_set_free always returns NULL and consequently later uses of the isl object
we just freed will never be reached. Without this knowledge, the analyser has
to issue a warning.
We refactor the code to make it clear that for empty maps the current loop
iteration is aborted.
llvm-svn: 280940
Tobias Grosser [Thu, 8 Sep 2016 14:08:05 +0000 (14:08 +0000)]
ScopDetection: Make sure we do not accidentally divide by zero
This code path is likely never triggered, but by still handling this case
locally we avoid warnings in clangs static analyzer.
llvm-svn: 280939
Tobias Grosser [Thu, 8 Sep 2016 14:08:01 +0000 (14:08 +0000)]
DependenceInfo: Make clear that no double-free problem exists
When running the clang static analyser to check for memory issues, this code
originally showed a double free, as the analyser was unable to understand that
isl_union_map_free always returns NULL and consequently later uses of the isl
object we just freed will never be reached. Without this knowledge, the analyser
has to issue a warning.
We refactor the code to make it clear that for empty maps the current loop
iteration is aborted.
llvm-svn: 280938
Rafael Espindola [Thu, 8 Sep 2016 14:06:08 +0000 (14:06 +0000)]
Compute section names only once.
This simplifies error handling as there is now only one place in the
code that needs to consider the possibility that the name is
corrupted. Before we would do it in every access.
llvm-svn: 280937
Tobias Grosser [Thu, 8 Sep 2016 13:48:55 +0000 (13:48 +0000)]
IslNodeBuilder: Add missing __isl_take annotations
llvm-svn: 280936
Renato Golin [Thu, 8 Sep 2016 13:45:10 +0000 (13:45 +0000)]
[ARM XRay] Try to fix Thumb-only failure
I mised the check that it had to support ARM to work. This commit tries
to fix that, to make sure we don't emit ARM code in Thumb-only mode.
llvm-svn: 280935
Filipe Cabecinhas [Thu, 8 Sep 2016 13:28:26 +0000 (13:28 +0000)]
[asan] Handle SIGBART signal description. (found by buildbot)
llvm-svn: 280934
Ed Maste [Thu, 8 Sep 2016 13:17:42 +0000 (13:17 +0000)]
Fix -Wcovered-switch-default warning in AppleObjCRuntimeV2.cpp
The switch coveres all possible values. If a new one is added in the
future the compiler will start warning, providing a notification that
the switch needs updating.
llvm-svn: 280933
James Molloy [Thu, 8 Sep 2016 13:12:22 +0000 (13:12 +0000)]
[SDAGBuilder] Don't create a binary tree for switches in minsize mode
This bloats codesize - all of the non-leaf nodes are extra code.
llvm-svn: 280932
Ed Maste [Thu, 8 Sep 2016 13:11:31 +0000 (13:11 +0000)]
Fix unused variable and integer sign warnings from r280906
llvm-svn: 280931
Filipe Cabecinhas [Thu, 8 Sep 2016 12:58:15 +0000 (12:58 +0000)]
[asan] Reify ErrorDeadlySignal
Summary: Keep reifying other errors.
Reviewers: kcc, samsonov
Subscribers: llvm-commits, kubabrecka
Differential Revision: https://reviews.llvm.org/D23873
llvm-svn: 280930
James Molloy [Thu, 8 Sep 2016 12:58:12 +0000 (12:58 +0000)]
[Thumb1] AND with a constant operand can be converted into BIC
So model the cost of materializing the constant operand C as the minimum of
C and ~C.
llvm-svn: 280929