| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
This is now obvious as the pointer alignment behavior was changed.
Before (even with pointer alignment "Left"):
MACRO Constructor(const int &i) : a(a), b(b) {}
After:
MACRO Constructor(const int& i) : a(a), b(b) {}
llvm-svn: 235301
|
| |
|
|
|
|
|
|
|
|
|
| |
We have to avoid converting a reference to a global into a reference to a local,
but it is fine to look past a local.
Patch by Vasileios Kalintiris.
I just moved the comment and added thet test.
llvm-svn: 235300
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This will allow us to enable it on the buildbot (and then enable a
sanitizer buildbot).
The problem is that gcc for Mips does not accept -m32/-m64 like clang does.
We therefore need to use the nearest equivalent -mips32r2/-mips64r2. We must
also specify -mabi=64 in the -mips64r2 case since gcc's default ABI has
traditionally been N32 whereas clang's is N64.
Reviewers: sagar
Reviewed By: sagar
Subscribers: llvm-commits, samsonov, kcc, mohit.bhakkad, Anand.Takale, sagar
Differential Revision: http://reviews.llvm.org/D8892
llvm-svn: 235299
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8387
llvm-svn: 235298
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8834
llvm-svn: 235297
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8386
llvm-svn: 235296
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conversion (PR23273).
This fixes a regression introduced at revision 231243.
The target-independent selection algorithm in FastISel knows how to select
a SINT_TO_FP if the target is SSE but not AVX. That is because on X86, the
tablegen'd 'fastEmit' functions know how to select CVTSI2SSrr and CVTSI2SDrr.
Method X86FastISel::X86SelectSIToFP was therefore working under the
wrong assumption that the target was AVX. That assumption was incorrect since
we can have a target that is neither AVX nor SSE.
So, rather than asserting for the presence of AVX, we should have had an
early exit from 'X86SelectSIToFP' if the target was not AVX.
This patch fixes the issue replacing the invalid assertion with an early exit.
Thanks to Dimitry Andric for reporting this problem and for providing a small
reproducible testcase. Added test pr23273.ll.
llvm-svn: 235295
|
| |
|
|
| |
llvm-svn: 235294
|
| |
|
|
|
|
|
|
|
|
| |
Fixes https://llvm.org/bugs/show_bug.cgi?id=23235
If pthread_create is followed by pthread_detach,
the new thread may not acquire synchronize with
the parent thread.
llvm-svn: 235293
|
| |
|
|
|
|
|
|
|
|
|
| |
The arm instruction emulation handles only some of the opcode (including
all of them modifying the PC). For the rest of the instructions we can
advance the PC by the size of the instruction as they don't modify the
PC on any other way.
Differential revision: http://reviews.llvm.org/D9076
llvm-svn: 235292
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously the read thread was only stopped if CloseOnEOF was set on the
communication channel. It caused it to spin in case of an EOF because
::select() always reported that we can read from the file descriptor.
This CL change this behavior with stopping the read thread on EOF but do
a disconnect only if CloseOnEOF is enabled.
Differential revision: http://reviews.llvm.org/D9077
llvm-svn: 235291
|
| |
|
|
|
|
|
| |
If .MIPS.options section exists the DT_MIPS_OPTIONS tag should hold
an address of this section.
llvm-svn: 235290
|
| |
|
|
| |
llvm-svn: 235289
|
| |
|
|
| |
llvm-svn: 235288
|
| |
|
|
| |
llvm-svn: 235287
|
| |
|
|
|
|
| |
Adapt function to LLVM coding style.
llvm-svn: 235286
|
| |
|
|
| |
llvm-svn: 235285
|
| |
|
|
|
|
|
|
|
| |
This patch refactors reduction identification code out of LoopVectorizer and
exposes them as common utilities.
No functional change.
Review: http://reviews.llvm.org/D9046
llvm-svn: 235284
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an inline asm call has an output register marked as early-clobber, but
that same register is also an input operand, what should we do? GCC accepts
this, and is documented to accept this for read/write operands saying,
"Furthermore, if the earlyclobber operand is also a read/write operand, then
that operand is written only after it's used." For write-only operands, the
situation seems less clear, but I have at least one existing codebase that
assumes this will work, in part because it has syscall macros like this:
({ \
register uint64_t r0 __asm__ ("r0") = (__NR_ ## name); \
register uint64_t r3 __asm__ ("r3") = ((uint64_t) (arg0)); \
register uint64_t r4 __asm__ ("r4") = ((uint64_t) (arg1)); \
register uint64_t r5 __asm__ ("r5") = ((uint64_t) (arg2)); \
__asm__ __volatile__ \
("sc" \
: "=&r"(r0),"=&r"(r3),"=&r"(r4),"=&r"(r5) \
: "0"(r0), "1"(r3), "2"(r4), "3"(r5) \
: "r6","r7","r8","r9","r10","r11","r12","cr0","memory"); \
r3; \
})
Furthermore, with register aliases and subregister relationships that only the
backend knows about, rejecting this in the frontend seems like a difficult
proposition (if we wanted to do so). However, keeping the early-clobber flag on
the INLINEASM MI does not work for us, because it will cause the register's
live interval to end to soon (so it will not appear defined to be used as an
input).
Fortunately, fixing this does not seem hard: When forming the INLINEASM MI,
check to see if any of the early-clobber outputs are also inputs, and if so,
remove the early-clobber flag.
llvm-svn: 235283
|
| |
|
|
|
|
|
|
|
| |
Before we only accepted --dynamic-linker=<file> and -dynamic-linker <file>
but older versions of GNU ld (e.g. 2.17.50) accept this other form, so
try to be compatible.
PR: 23233
llvm-svn: 235282
|
| |
|
|
|
|
|
|
|
|
| |
requiring truncation.
The fix ensures that scalar sources inserted into a vector are the correct bit size.
Integer scalar sources from BUILD_VECTOR and SCALAR_TO_VECTOR nodes may require truncation that this function doesn't currently support.
llvm-svn: 235281
|
| |
|
|
| |
llvm-svn: 235280
|
| |
|
|
|
|
| |
and constant folding.
llvm-svn: 235279
|
| |
|
|
|
|
| |
No functional changes.
llvm-svn: 235278
|
| |
|
|
|
|
|
| |
As with the other sanitizers, it is desirable to allow ubsan's output to be
redirected to somewhere other than stderr (and into per-process log files).
llvm-svn: 235277
|
| |
|
|
|
|
|
|
|
|
|
| |
in the context of the container itself.
Otherwise we will emit 'unavailable' errors when referencing an unavailable super class
even though the subclass is also marked 'unavailable'.
rdar://20598702
llvm-svn: 235276
|
| |
|
|
|
|
| |
Reported by Andrew Turner.
llvm-svn: 235275
|
| |
|
|
| |
llvm-svn: 235274
|
| |
|
|
|
|
|
| |
A minor update mostly documenting the isl coding style as well as adding
functions to inspect isl_schedule_constraints objects.
llvm-svn: 235273
|
| |
|
|
|
|
|
|
|
|
|
|
| |
__declspec(align(...)) is unlike all other attributes in that it is not
applied to a variable if it appears before the class-key. If the
tag in question isn't part of a variable declaration, it is not ignored.
Instead, the alignment attribute is applied to the tag.
This fixes PR18024.
llvm-svn: 235272
|
| |
|
|
| |
llvm-svn: 235271
|
| |
|
|
|
|
|
| |
This is needed when building the Darwin kernel with
-fsanitize=undefined-trap. rdar://problem/12783702
llvm-svn: 235270
|
| |
|
|
| |
llvm-svn: 235269
|
| |
|
|
| |
llvm-svn: 235268
|
| |
|
|
| |
llvm-svn: 235267
|
| |
|
|
| |
llvm-svn: 235266
|
| |
|
|
|
|
| |
not used anywhere in llvm.
llvm-svn: 235265
|
| |
|
|
|
|
| |
some versions of GCC.
llvm-svn: 235264
|
| |
|
|
| |
llvm-svn: 235263
|
| |
|
|
| |
llvm-svn: 235262
|
| |
|
|
|
|
|
|
|
|
| |
Harden r235258 to support any integer bitwidth. The quick glance at
the reference made me think only i32 and i64 were valid types, but
they're not special, so any overload is legal.
Thanks to David Majnemer for noticing!
llvm-svn: 235261
|
| |
|
|
| |
llvm-svn: 235260
|
| |
|
|
| |
llvm-svn: 235259
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Followup to r235232, which caused PR23278.
We can't assume the memset and memcpy sizes have the same type, as
nothing in the language reference prevents that.
Instead, zext both to i64 if they disagree.
While there, robustify tests by using i8 %c rather than i8 0 for the
memset character.
llvm-svn: 235258
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 235257
|
| |
|
|
| |
llvm-svn: 235256
|
| |
|
|
|
|
|
|
| |
of ArchSpec.
http://reviews.llvm.org/D9078
llvm-svn: 235255
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Otherwise, instructions in different functions that share the same pointer (due
to earlier modifications), might get assigned incorrect memory access
information (belonging to instructions in previous functions), which can result
in arbitrary memory corruption and assertion failures.
This fixes llvm.org/PR23160 and possibly also llvm.org/PR23167.
Note: InsnToMemAcc is a global variable that should never have existed in the
first place. We will clean this up in a subsequent patch.
Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Debugged-by: Johannes Doerfert <doerfert@cs.uni-saarland.de>
llvm-svn: 235254
|
| |
|
|
| |
llvm-svn: 235253
|
| |
|
|
| |
llvm-svn: 235252
|