| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Do not use struct stat64 and struct statfs64 when building for iOS, where __DARWIN_ONLY_64_BIT_INO_T is set to 1.
llvm-svn: 193775
|
| |
|
|
| |
llvm-svn: 193774
|
| |
|
|
| |
llvm-svn: 193773
|
| |
|
|
| |
llvm-svn: 193772
|
| |
|
|
|
|
| |
(Threaded inferior debugging not yet available on FreeBSD.)
llvm-svn: 193771
|
| |
|
|
|
|
| |
make it more robust. No functionality change.
llvm-svn: 193770
|
| |
|
|
| |
llvm-svn: 193769
|
| |
|
|
| |
llvm-svn: 193768
|
| |
|
|
| |
llvm-svn: 193767
|
| |
|
|
| |
llvm-svn: 193766
|
| |
|
|
| |
llvm-svn: 193765
|
| |
|
|
| |
llvm-svn: 193763
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r193479.
The atoms are already added to the file, so re-adding them caused the YAML
writer to write the same atoms twice. That made the YAML reader to fail with
"duplicate atom name" error.
This is not the only error we've got for RoundTripYAMLPass for PECOFF, so we
cannot enable the test yet. More fixes will come.
Differential Revision: http://llvm-reviews.chandlerc.com/D2069
llvm-svn: 193762
|
| |
|
|
|
|
| |
Fixes from code review by Jim Ingham that reinstate preferring an external vs non-external symbol when finding function addresses.
llvm-svn: 193761
|
| |
|
|
| |
llvm-svn: 193760
|
| |
|
|
|
|
|
| |
deprecated categories, fixes a typo reported by
Jordan.
llvm-svn: 193759
|
| |
|
|
|
|
| |
used when ASAN_OPTIONS=symbolize=1) if LLVM_SYMBOLIZER_PATH is empty.
llvm-svn: 193758
|
| |
|
|
|
|
|
|
|
| |
- can't think of a way to test this without generic lambda captures, but will include a test once that patch is made commit-ready.
patch was ok'd by Doug.
http://llvm-reviews.chandlerc.com/D2029
llvm-svn: 193757
|
| |
|
|
| |
llvm-svn: 193756
|
| |
|
|
|
|
| |
The same logic is present in ASan and TSan.
llvm-svn: 193755
|
| |
|
|
|
|
|
|
|
| |
Some function definitions were using _CLC_DECL, which meant that they
weren't being marked as always_inline.
Reviewed-by and Tested-by: Aaron Watry <awatry@gmail.com>
llvm-svn: 193754
|
| |
|
|
|
|
|
|
| |
This will prevent LLVM optimization passes from creating illegal uses
of the barrier() intrinsic (e.g. calling barrier() from a conditional
that is not executed by all threads).
llvm-svn: 193753
|
| |
|
|
| |
llvm-svn: 193752
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The isLValueReferenceType function checks to see if the QualType's
canonical type is an LValue reference, and not if the QualType
itself is an LValue reference. This caused a segfault when trying
to cast the QualType's Type to a LValueReference. This is now
fixed by casting the result of getCanonicalType().
In addition, a test was added to isConsumableType to prevent
segfaults when a type being tested by the analysis is a reference
to a pointer or a pointer to a reference.
llvm-svn: 193751
|
| |
|
|
|
|
| |
Patch by Robin Hahling.
llvm-svn: 193750
|
| |
|
|
|
|
| |
It had no tests, was unused and was "experimental at best".
llvm-svn: 193749
|
| |
|
|
| |
llvm-svn: 193748
|
| |
|
|
| |
llvm-svn: 193747
|
| |
|
|
| |
llvm-svn: 193746
|
| |
|
|
| |
llvm-svn: 193745
|
| |
|
|
| |
llvm-svn: 193744
|
| |
|
|
| |
llvm-svn: 193743
|
| |
|
|
|
|
|
|
|
|
| |
As on other hosts, the CPU identification instruction is priveleged,
so we need to look through /proc/cpuinfo. I copied the PowerPC way of
handling "generic".
Several tests were implicitly assuming z10 and so failed on z196.
llvm-svn: 193742
|
| |
|
|
| |
llvm-svn: 193741
|
| |
|
|
|
|
|
|
|
|
| |
Enables the clang driver to begin targeting specific CPUs. Introduced a
"generic" CPU which will ensure that the optional FP feature is enabled
by default when it gets to LLVM, without needing any extra arguments.
Cortex-A53 and A-57 are also introduced with tests, although backend
handling of them does not yet exist.
llvm-svn: 193740
|
| |
|
|
|
|
|
| |
This adds a new subtarget feature called FPARMv8 (implied by NEON), and
predicates the support of the FP instructions and registers on this feature.
llvm-svn: 193739
|
| |
|
|
| |
llvm-svn: 193738
|
| |
|
|
| |
llvm-svn: 193737
|
| |
|
|
|
|
| |
Found by the valgrind bot.
llvm-svn: 193736
|
| |
|
|
| |
llvm-svn: 193734
|
| |
|
|
| |
llvm-svn: 193732
|
| |
|
|
|
|
|
|
|
| |
into a separate "parse an attribute that takes a type argument" codepath. This
results in both codepaths being a lot cleaner and simpler, and fixes some bugs
where the type argument handling bled into the expression argument handling and
caused us to both accept invalid and reject valid attribute arguments.
llvm-svn: 193731
|
| |
|
|
| |
llvm-svn: 193730
|
| |
|
|
|
|
| |
ASan users
llvm-svn: 193729
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an extend more than doubles the size of the elements (e.g., a zext
from v16i8 to v16i32), the normal legalization method of splitting the
vectors will run into problems as by the time the destination vector is
legal, the source vector is illegal. The end result is the operation
often becoming scalarized, with the typical horrible performance. For
example, on x86_64, the simple input of:
define void @bar(<16 x i8> %a, <16 x i32>* %p) nounwind {
%tmp = zext <16 x i8> %a to <16 x i32>
store <16 x i32> %tmp, <16 x i32>*%p
ret void
}
Generates:
.section __TEXT,__text,regular,pure_instructions
.section __TEXT,__const
.align 5
LCPI0_0:
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.long 255 ## 0xff
.section __TEXT,__text,regular,pure_instructions
.globl _bar
.align 4, 0x90
_bar:
vpunpckhbw %xmm0, %xmm0, %xmm1
vpunpckhwd %xmm0, %xmm1, %xmm2
vpmovzxwd %xmm1, %xmm1
vinsertf128 $1, %xmm2, %ymm1, %ymm1
vmovaps LCPI0_0(%rip), %ymm2
vandps %ymm2, %ymm1, %ymm1
vpmovzxbw %xmm0, %xmm3
vpunpckhwd %xmm0, %xmm3, %xmm3
vpmovzxbd %xmm0, %xmm0
vinsertf128 $1, %xmm3, %ymm0, %ymm0
vandps %ymm2, %ymm0, %ymm0
vmovaps %ymm0, (%rdi)
vmovaps %ymm1, 32(%rdi)
vzeroupper
ret
So instead we can check if there are legal types that enable us to split
more cleverly when the input vector is already legal such that we don't
turn it into an illegal type. If the extend is such that it's more than
doubling the size of the input we check if
- the number of vector elements is even,
- the source type is legal,
- the type of a split source is illegal,
- the type of an extended (by doubling element size) source is legal, and
- the type of that extended source when split is legal.
If the conditions are met, instead of just splitting both the
destination and the source types, we create an extend that only goes up
one "step" (doubling the element width), and the continue legalizing the
rest of the operation normally. The result is that this operates as a
new, more effecient, termination condition for the loop of "split the
operation until the destination type is legal."
With this change, the above example now compiles to:
_bar:
vpxor %xmm1, %xmm1, %xmm1
vpunpcklbw %xmm1, %xmm0, %xmm2
vpunpckhwd %xmm1, %xmm2, %xmm3
vpunpcklwd %xmm1, %xmm2, %xmm2
vinsertf128 $1, %xmm3, %ymm2, %ymm2
vpunpckhbw %xmm1, %xmm0, %xmm0
vpunpckhwd %xmm1, %xmm0, %xmm3
vpunpcklwd %xmm1, %xmm0, %xmm0
vinsertf128 $1, %xmm3, %ymm0, %ymm0
vmovaps %ymm0, 32(%rdi)
vmovaps %ymm2, (%rdi)
vzeroupper
ret
This generalizes a custom lowering that was added a while back to the
ARM backend. That lowering is no longer necessary, and is removed. The
testcases for it, however, provide excellent ARM tests for this change
and so remain.
rdar://14735100
llvm-svn: 193727
|
| |
|
|
|
|
|
| |
a category with NSxxxDeprecated name with deprecated
annotation. // rdar://15337661
llvm-svn: 193726
|
| |
|
|
|
|
| |
Patch by Loïc Jaquemet!
llvm-svn: 193725
|
| |
|
|
|
|
|
|
|
|
|
|
| |
bind to a ValueObject internally depending on any criteria
User-vended by-type formatters still would prevail on these hardcoded ones
For the time being, while the infrastructure is there, no such formatters exist
This can be useful for cases such as expanding vtables for C++ class pointers, when there is no clear cut notion of a typename matching, and the feature is low-level enough that it makes sense for the debugger core to be vending it
llvm-svn: 193724
|
| |
|
|
| |
llvm-svn: 193723
|
| |
|
|
|
|
|
|
|
| |
CodeGenTypes.h instantiates llvm::FoldingSet<> with CGFunctionInfo,
and VC++ doesn't like the static_cast from FoldingSetImpl::Node* to
CGFunctionInfo* since it hasn't seen the definition of CGFunctionInfo
and that it inherits from FoldingSetImpl::Node.
llvm-svn: 193722
|