| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Missing on SandyBridge and Btver2 models
llvm-svn: 302804
|
|
|
|
|
|
|
|
| |
A recent commit made GlobalVariable.h depend on intrinsics generation, so (I
think) it needs to be in the lower-level module. I'll confirm with others, but
this should fix the bots.
llvm-svn: 302803
|
|
|
|
|
|
| |
added a few more tests.
llvm-svn: 302802
|
|
|
|
|
|
| |
Also remove a confused stable-runtimes requirement.
llvm-svn: 302801
|
|
|
|
|
|
| |
Richard Smith says that using the namespace results in an ODR violation, but I disagree. Nevertheless, the struct works just as well.
llvm-svn: 302800
|
|
|
|
|
|
| |
covered it already. Just added comments to the tests. Thanks to K-ballo for the heads up.
llvm-svn: 302799
|
|
|
|
|
|
| |
covered it already. Just added comments to the tests
llvm-svn: 302798
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type is a TemplateSpecializationType or InjectedClassNameType
Fixes PR30847. Partially fixes PR20973 (first position only).
PR17614 is still not working, its expression has the dependent
builtin type. We'll have to teach the completion engine how to "resolve"
dependent expressions to fix it.
rdar://29818301
llvm-svn: 302797
|
|
|
|
|
|
| |
completion results for records
llvm-svn: 302796
|
|
|
|
|
|
| |
Thanks to Matthew Larionov <matthewtff@gmail.com>
llvm-svn: 302795
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch extends llvm-ir to allow attributes to be set on global variables.
An RFC was sent out earlier by my colleague James Molloy: http://lists.llvm.org/pipermail/cfe-dev/2017-March/053100.html
A key part of that proposal was to extend LLVM-IR to carry attributes on global variables.
This generic feature could be useful for multiple purposes.
In our present context, it would be useful to carry user specified sections for bss/rodata/data.
Reviewed by: Jonathan Roelofs, Reid Kleckner
Differential Revision: https://reviews.llvm.org/D32009
llvm-svn: 302794
|
|
|
|
|
|
| |
Now it handle by TableGen.
llvm-svn: 302793
|
|
|
|
|
|
|
|
| |
Testcase itself depends on .text section location, which was orphan earlier.
Suggested by Rafael Espíndola
llvm-svn: 302792
|
|
|
|
|
|
|
|
| |
folding TableGen backend.
Differential Revision: https://reviews.llvm.org/D32797
llvm-svn: 302791
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce LoopVectorizationPlanner.executePlan(), replacing ILV.vectorize() and
refactoring ILV.vectorizeLoop(). Method collectDeadInstructions() is moved from
ILV to LVP. These changes facilitate building VPlans and using them to generate
code, following https://reviews.llvm.org/D28975 and its tentative breakdown.
Method ILV.createEmptyLoop() is renamed ILV.createVectorizedLoopSkeleton() to
improve clarity; it's contents remain intact.
Differential Revision: https://reviews.llvm.org/D32200
llvm-svn: 302790
|
|
|
|
|
|
| |
Marking it as unsupported for now to hopefully make the bot green.
llvm-svn: 302789
|
|
|
|
|
|
| |
Make sure MSan doesn't miss a bug comparing two integers with defined low bits.
llvm-svn: 302788
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turned out that MSan was incorrectly calculating the shadow for int comparisons: it was done by truncating the result of (Shadow1 OR Shadow2) to i1, effectively rendering all bits except LSB useless.
This approach doesn't work e.g. in the case where the values being compared are even (i.e. have the LSB of the shadow equal to zero).
Instead, if CreateShadowCast() has to cast a bigger int to i1, we replace the truncation with an ICMP to 0.
This patch doesn't affect the code generated for SPEC 2006 binaries, i.e. there's no performance impact.
For the test case reported in PR32842 MSan with the patch generates a slightly more efficient code:
orq %rcx, %rax
jne .LBB0_6
, instead of:
orl %ecx, %eax
testb $1, %al
jne .LBB0_6
llvm-svn: 302787
|
|
|
|
| |
llvm-svn: 302786
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
manages to form a VSELECT with a non-i1 element type condition. Those
are technically allowed in SDAG (at least, the generic type legalization
logic will form them and I wouldn't want to try to audit everything te
preclude forming them) so we need to be able to lower them.
This isn't too hard to implement. We mark VSELECT as custom so we get
a chance in C++, add a fast path for i1 conditions to get directly
handled by the patterns, and a fallback when we need to manually force
the condition to be an i1 that uses the vptestm instruction to turn
a non-mask into a mask.
This, unsurprisingly, generates awful code. But it at least doesn't
crash. This was actually impacting open source packages built with LLVM
for AVX-512 in the wild, so quickly landing a patch that at least stops
the immediate bleeding.
I think I've found where to fix the codegen quality issue, but less
confident of that change so separating it out from the thing that
doesn't change the result of any existing test case but causes mine to
not crash.
llvm-svn: 302785
|
|
|
|
| |
llvm-svn: 302784
|
|
|
|
|
|
|
| |
The stack unwinder fails to unwind the stack past the interceptor stack
frame, resulting in a test failure. XFAIL this for now.
llvm-svn: 302783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the same as r292827 for AArch64: we widen 8- and 16-bit ADD, SUB
and MUL to 32 bits since we only have TableGen patterns for 32 bits.
See the commit message for r292827 for more details.
At this point we could just remove some of the tests for regbankselect
and instruction-select, since we're not going to see any narrow
operations at those levels anymore. Instead I decided to update them
with G_ANYEXT/G_TRUNC operations, so we can validate the full sequences
generated by the legalizer.
llvm-svn: 302782
|
|
|
|
|
|
|
|
|
| |
Fix undeclared __interceptor_malloc in esan_interceptors.cc
Fix undeclared strnlen on OSX
Differential Revision: https://reviews.llvm.org/D31457
llvm-svn: 302781
|
|
|
|
|
|
| |
Conversion rules allow automatic casting of nullptr to any pointer type.
llvm-svn: 302780
|
|
|
|
| |
llvm-svn: 302779
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
G_ANYEXT can be introduced by the legalizer when widening scalars. Add
support for it in the register bank info (same mapping as everything
else) and in the instruction selector.
When selecting it, we treat it as a COPY, just like G_TRUNC. On this
occasion we get rid of some assertions in selectCopy so we can reuse it.
This shouldn't be a problem at the moment since we're not supporting any
complicated cases (e.g. FPR, different register banks). We might want to
separate the paths when we do.
llvm-svn: 302778
|
|
|
|
| |
llvm-svn: 302777
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument in list-initialization, run cleanups for the default argument after each iteration of the initialization loop."
Revert "clang/test/CodeGenCXX/array-default-argument.cpp: Satisfy targets that have x86_thiscallcc."
This reverts commit r302750 and its fixup r302757 because the test is
still breaking on some of the ARM bots.
array-default-argument.cpp:20:12: error: expected string not found in input
// CHECK: {{call|invoke}}[[THISCALL:( x86_thiscallcc)?]] void @_ZN1AC1Ev([[TEMPORARY:.*]])
^
<stdin>:18:1: note: scanning from here
arrayctor.loop: ; preds = %arrayctor.loop, %entry
^
<stdin>:28:2: note: possible intended match here
call void @_Z1fv()
^
--
llvm-svn: 302776
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now if clang driver is given wrong arguments, in some cases it
continues execution and returns zero code. This change fixes this
behavior.
The fix revealed some errors in clang test set.
File test/Driver/gfortran.f90 added in r118203 checks forwarding
gfortran flags to GCC. Now driver reports error on this file, because
the option -working-directory implemented in clang differs from the
option with the same name implemented in gfortran, in clang the option
requires argument, in gfortran does not.
In the file test/Driver/arm-darwin-builtin.c clang is called with
options -fbuiltin-strcat and -fbuiltin-strcpy. These option were removed
in r191435 and now clang reports error on this test.
File arm-default-build-attributes.s uses option -verify, which is not
supported by driver, it is cc1 option.
Similarly, the file split-debug.h uses options -fmodules-embed-all-files
and -fmodule-format=obj, which are not supported by driver.
Other revealed errors are mainly mistypes.
Differential Revision: https://reviews.llvm.org/D33013
llvm-svn: 302775
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: support G_ICMP for scalar types i8/i16/i64.
Reviewers: zvi, guyblank
Reviewed By: guyblank
Subscribers: rovka, kristof.beyls, llvm-commits, krytarowski
Differential Revision: https://reviews.llvm.org/D32995
llvm-svn: 302774
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The following code is broken:
```
std::visit([]{});
```
Reviewers: EricWF
Reviewed By: EricWF
Differential Revision: https://reviews.llvm.org/D33090
llvm-svn: 302773
|
|
|
|
|
|
| |
Turns out udivrem can write its output to the same location as one of its inputs so the extra temporary isn't needed.
llvm-svn: 302772
|
|
|
|
|
|
|
| |
and appease:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/2030
llvm-svn: 302771
|
|
|
|
|
|
| |
writing back over the original value.
llvm-svn: 302770
|
|
|
|
| |
llvm-svn: 302769
|
|
|
|
| |
llvm-svn: 302768
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Move getX86ConditionCode() from X86FastISel.cpp to X86InstrInfo.cpp so it can be used by GloabalIsel instruction selector.
This is a pre-commit for a patch I'm working on to support G_ICMP. NFC.
Reviewers: zvi, guyblank, delena
Reviewed By: guyblank, delena
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D33038
llvm-svn: 302767
|
|
|
|
| |
llvm-svn: 302766
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Diagnostics related to redefinition errors that point to the same header
file do not provide much information that helps users fixing the issue.
- In the modules context, it usually happens because of non modular
includes.
- When modules aren't involved it might happen because of the lack of
header guards.
Enhance diagnostics in these scenarios.
Differential Revision: https://reviews.llvm.org/D28832
rdar://problem/31669175
llvm-svn: 302765
|
|
|
|
|
|
|
|
| |
This reverts commit r302763.
The commit caused bot failures.
llvm-svn: 302764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r276215 made a change to annotate _Unwind_Exception with attribute
"aligned" so that an exception object following field __cxa_exception
is sufficiently aligned. This fix hasn't been incorporated to unwind.h
on Darwin since it is an ABI breaking change.
Instead of annotating struct _Unwind_Exception with the attribute, this
commit annotates field unwindHeader of __cxa_exception. This ensures the
exception object is sufficiently aligned without breaking the ABI.
rdar://problem/25364625
Differential Revision: https://reviews.llvm.org/D33030
llvm-svn: 302763
|
|
|
|
|
|
| |
This reverts commit r302759
llvm-svn: 302762
|
|
|
|
| |
llvm-svn: 302761
|
|
|
|
| |
llvm-svn: 302760
|
|
|
|
| |
llvm-svn: 302759
|
|
|
|
|
|
| |
in r302737. [-Wdocumentation]
llvm-svn: 302758
|
|
|
|
|
|
| |
x86_thiscallcc.
llvm-svn: 302757
|
|
|
|
|
|
| |
Post-commit review of r301940 by David Blaikie.
llvm-svn: 302756
|
|
|
|
| |
llvm-svn: 302755
|