Rafael Espindola [Thu, 24 Mar 2016 16:45:41 +0000 (16:45 +0000)]
Fix gold tests for llvm-readobj format change.
llvm-svn: 264306
Simon Pilgrim [Thu, 24 Mar 2016 16:31:30 +0000 (16:31 +0000)]
[X86][XOP] Fixed instruction postfixes to more closely match operands
Suggested by Sanjay in D18189 as the multiple folding options in XOP instructions can be tricky
llvm-svn: 264305
Simon Atanasyan [Thu, 24 Mar 2016 16:30:20 +0000 (16:30 +0000)]
[ELF] Follow-up to r264300. Update test case expectations to reflect recent changes in llvm-readobj. NFC.
llvm-svn: 264304
Duncan P. N. Exon Smith [Thu, 24 Mar 2016 16:30:18 +0000 (16:30 +0000)]
BitcodeWriter: Move abbreviation for GenericDINode; almost NFC
Simplify ValueEnumerator and WriteModuleMetadata by shifting the logic
for the METADATA_GENERIC_DEBUG abbreviation into WriteGenericDINode.
(This is just like r264302, but for GenericDINode.)
The only change is that the abbreviation is emitted later in the
bitcode, just before the first `GenericDINode` record. This shouldn't
be observable though.
llvm-svn: 264303
Duncan P. N. Exon Smith [Thu, 24 Mar 2016 16:25:51 +0000 (16:25 +0000)]
BitcodeWriter: Move abbreviation for DILocation; almost NFC
Simplify ValueEnumerator and WriteModuleMetadata by shifting the logic
for the METADATA_LOCATION abbreviation into WriteDILocation.
The only change is that the abbreviation is emitted later in the
bitcode, just before the first `DILocation` record. This shouldn't be
observable though.
llvm-svn: 264302
Duncan P. N. Exon Smith [Thu, 24 Mar 2016 16:16:08 +0000 (16:16 +0000)]
BitcodeWriter: Split out named metadata; almost NFC
Split writeNamedMetadata out of WriteModuleMetadata to write named
metadata, and createNamedMetadataAbbrev for the abbreviation.
There should be no effective functionality change, although the layout
of the bitcode will change. Previously, the abbreviation was emitted at
the top of the block, but now it is delayed until immediately before the
named metadata records are emitted.
llvm-svn: 264301
Simon Atanasyan [Thu, 24 Mar 2016 16:10:37 +0000 (16:10 +0000)]
[llvm-readobj] Decode st_other symbol's flags
The patch supports common STV_xxx visibility flags and MIPS specific
STO_MIPS_xxx flags.
Differential Revision: http://reviews.llvm.org/D18447
llvm-svn: 264300
Duncan P. N. Exon Smith [Thu, 24 Mar 2016 16:01:46 +0000 (16:01 +0000)]
Bitcode: Module* -> Module&, NFC
llvm-svn: 264299
Elena Demikhovsky [Thu, 24 Mar 2016 15:53:45 +0000 (15:53 +0000)]
AVX-512: Generate KTEST instead of TEST fir i1 vectors
KTEST instruction may be used instead of TEST in this case:
%int_sel3 = bitcast <8 x i1> %sel3 to i8
%res = icmp eq i8 %int_sel3, zeroinitializer
br i1 %res, label %L2, label %L1
Differential Revision: http://reviews.llvm.org/D18444
llvm-svn: 264298
NAKAMURA Takumi [Thu, 24 Mar 2016 15:40:46 +0000 (15:40 +0000)]
ErrorTest.cpp: Move instantiations out of anonymous namespace. gcc didn't complain.
llvm-svn: 264297
Tim Northover [Thu, 24 Mar 2016 15:38:38 +0000 (15:38 +0000)]
CodeGen: extend RHS when splitting ATOMIC_CMP_SWAP_WITH_SUCCESS.
If the operation's type has been promoted during type legalization, we
need to account for the fact that the high bits of the comparison
operand are likely unspecified.
The LHS is usually zero-extended, but MIPS sign extends it, so we have
to be slightly careful.
Patch by Simon Dardis.
llvm-svn: 264296
Tom Stellard [Thu, 24 Mar 2016 15:31:05 +0000 (15:31 +0000)]
AMDGPU/SI: Add Polaris support
Patch By: Sonny Jiang
llvm-svn: 264295
Simon Pilgrim [Thu, 24 Mar 2016 15:28:02 +0000 (15:28 +0000)]
[X86][XOP] Merged 128/256 bit 4op instruction definitions. NFCI.
llvm-svn: 264294
NAKAMURA Takumi [Thu, 24 Mar 2016 15:26:43 +0000 (15:26 +0000)]
Define ErrorInfo::ID explicitly.
llvm-svn: 264293
Rafael Espindola [Thu, 24 Mar 2016 15:23:01 +0000 (15:23 +0000)]
Fix another case where we were unconditionally linking linkonce GVs.
With this I think that now llvm-link, lld and the gold plugin should
agree on which symbol is kept.
llvm-svn: 264292
NAKAMURA Takumi [Thu, 24 Mar 2016 15:19:39 +0000 (15:19 +0000)]
Error.cpp: Fix a warning. [-Wpedantic]
llvm-svn: 264291
NAKAMURA Takumi [Thu, 24 Mar 2016 15:19:22 +0000 (15:19 +0000)]
ErrorTest.cpp: Fix an expression, possibly typo.
llvm-svn: 264290
Eric Liu [Thu, 24 Mar 2016 14:59:39 +0000 (14:59 +0000)]
Dsiable FormatStyle::GetStyleOfFile test case for mingw.
llvm-svn: 264289
Rafael Espindola [Thu, 24 Mar 2016 14:58:44 +0000 (14:58 +0000)]
Fix resolution of linkonce symbols in comdats.
After comdat processing, the symbols still go through regular symbol
resolution.
We were not doing it for linkonce symbols since they are lazy linked.
This fixes pr27044.
llvm-svn: 264288
Daniel Sanders [Thu, 24 Mar 2016 14:53:40 +0000 (14:53 +0000)]
[mips] Range check vsplat_simm5 and vsplat_simm10
Summary:
Reviewers: vkalintiris
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D18177
llvm-svn: 264287
Johannes Doerfert [Thu, 24 Mar 2016 14:31:49 +0000 (14:31 +0000)]
[CMAKE] Try to find the correct globbing expression
llvm-svn: 264286
Pirama Arumuga Nainar [Thu, 24 Mar 2016 14:06:03 +0000 (14:06 +0000)]
Remove unsafe AssertZext after promoting result of FP_TO_FP16
Summary:
Some target lowerings of FP_TO_FP16, for instance ARM's vcvtb.f16.f32
instruction, do not guarantee that the top 16 bits are zeroed out.
Remove the unsafe AssertZext and add tests to exercise this.
Reviewers: jmolloy, sbaranga, kristof.beyls, aadg
Subscribers: llvm-commits, srhines, aemerson
Differential Revision: http://reviews.llvm.org/D18426
llvm-svn: 264285
Johannes Doerfert [Thu, 24 Mar 2016 13:50:04 +0000 (13:50 +0000)]
[FIX] Handle accesses to "null" in MemIntrinsics
This fixes PR27035. While we now exclude MemIntrinsics from the
polyhedral model if they would access "null" we could exploit this
even more, e.g., remove all parameter combinations that would lead to
the execution of this statement from the context.
llvm-svn: 264284
Johannes Doerfert [Thu, 24 Mar 2016 13:49:39 +0000 (13:49 +0000)]
Restrict clang-format to lib/ [NFC]
llvm-svn: 264283
Nemanja Ivanovic [Thu, 24 Mar 2016 13:40:33 +0000 (13:40 +0000)]
[PowerPC] Disable direct moves for extractelement and bitcast in 32-bit mode
This patch corresponds to review:
http://reviews.llvm.org/D17711
It disables direct moves on these operations in 32-bit mode since the patterns
assume 64-bit registers. The final patch is slightly different from the
Phabricator review as the bitcast operations needed to be disabled in 32-bit
mode as well. This fixes PR26617.
llvm-svn: 264282
Amjad Aboud [Thu, 24 Mar 2016 13:30:41 +0000 (13:30 +0000)]
Recommitted r263425 "Supporting all entities declared in lexical scope in LLVM debug info."
After fixing PR26942 (the fix is included in this commit).
Differential Revision: http://reviews.llvm.org/D18350
llvm-svn: 264281
Amjad Aboud [Thu, 24 Mar 2016 13:30:16 +0000 (13:30 +0000)]
Recommitted r263424 "Supporting all entities declared in lexical scope in LLVM debug info."
After fixing PR26942 (the fix is included in this commit).
Differential Revision: http://reviews.llvm.org/D18350
llvm-svn: 264280
Daniel Sanders [Thu, 24 Mar 2016 13:26:59 +0000 (13:26 +0000)]
[mips] Range check simm10
Summary:
Reviewers: vkalintiris
Subscribers: llvm-commits, dsanders
Differential Revision: http://reviews.llvm.org/D18148
llvm-svn: 264279
Eric Liu [Thu, 24 Mar 2016 13:22:42 +0000 (13:22 +0000)]
Added support for different VFSs in format::getStyle. Disable platform-related test case for MS compilers to avoid breaking buildbot.
llvm-svn: 264277
Eric Liu [Thu, 24 Mar 2016 13:22:37 +0000 (13:22 +0000)]
Revert "Added support for different VFSs in format::getStyle."
This reverts commit r264253. It is breaking the buildbot http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/2203
llvm-svn: 264276
Eric Liu [Thu, 24 Mar 2016 13:22:28 +0000 (13:22 +0000)]
Revert "removed redundant comment in format::getStyle."
This reverts commit r264254.
llvm-svn: 264275
Johannes Doerfert [Thu, 24 Mar 2016 13:22:16 +0000 (13:22 +0000)]
[FIX] Verify the alias group before returning it
Similar to r262612 we need to check not only the pointer SCEV and the
type of an alias group but also the actual access instruction. The
reason is again the same: The pointer SCEV is not flow sensitive but the
access function is. In r262612 we avoided consolidating alias groups
even though the pointer SCEV and the type were the same but the access
function was not. Here it is simpler as we can simply check all members
of an alias group against the given access instruction.
llvm-svn: 264274
Johannes Doerfert [Thu, 24 Mar 2016 13:21:12 +0000 (13:21 +0000)]
[DOCS] Exclude python and shell scripts
llvm-svn: 264273
Johannes Doerfert [Thu, 24 Mar 2016 13:20:52 +0000 (13:20 +0000)]
Add namespace for struct [NFC]
This will clean up the doxygen documentation.
llvm-svn: 264272
Kuba Brecka [Thu, 24 Mar 2016 13:20:38 +0000 (13:20 +0000)]
Follow-up for r264261, adding a comment explaining what the testcase does.
llvm-svn: 264271
Johannes Doerfert [Thu, 24 Mar 2016 13:19:51 +0000 (13:19 +0000)]
Remove obsolete CMD option [NFC]
llvm-svn: 264270
Johannes Doerfert [Thu, 24 Mar 2016 13:19:16 +0000 (13:19 +0000)]
Remove obsolete code
Since r261226 we should not see this situation any more, if so it is probably
a bug that would only be hidden.
llvm-svn: 264269
Johannes Doerfert [Thu, 24 Mar 2016 13:16:49 +0000 (13:16 +0000)]
Remove weird comment [NFC]
llvm-svn: 264268
Rafael Espindola [Thu, 24 Mar 2016 12:55:27 +0000 (12:55 +0000)]
Make needsPlt a plain function instead of a template.
llvm-svn: 264267
Jonas Hahnfeld [Thu, 24 Mar 2016 12:52:20 +0000 (12:52 +0000)]
[OMPT] Fix parallel_id and task_id in loop_end with schedule static
For serialized parallel regions, wrong ids were reported. Now the same code is
used as in kmp_dispatch.cpp which emits the correct ids.
Differential Revision: http://reviews.llvm.org/D18348
llvm-svn: 264266
Jonas Hahnfeld [Thu, 24 Mar 2016 12:52:11 +0000 (12:52 +0000)]
[OMPT] Test ids reported by ompt_get_{parallel,task}_id
llvm-svn: 264265
Jonas Hahnfeld [Thu, 24 Mar 2016 12:52:04 +0000 (12:52 +0000)]
[OMPT] Fix duplicate implicit_task_end events for master thread with GCC
For non-serialized parallel regions the master thread issued two callbacks:
The first one in kmp_gsupport.c and the second in __kmp_join_call. Therefore
only trigger the callback in kmp_gsupport.c for serialized parallel regions.
Differential Revision: http://reviews.llvm.org/D16716
llvm-svn: 264264
Aaron Ballman [Thu, 24 Mar 2016 12:34:44 +0000 (12:34 +0000)]
Fix Sphinx errors with documentation build.
llvm-svn: 264263
Rafael Espindola [Thu, 24 Mar 2016 12:16:46 +0000 (12:16 +0000)]
Mark R_AARCH64_CONDBR19 as relative.
llvm-svn: 264262
Kuba Brecka [Thu, 24 Mar 2016 11:54:33 +0000 (11:54 +0000)]
[tsan] Fix fork() and fork-based tests for OS X
On OS X, fork() under TSan asserts (in debug builds only) because REAL(fork) calls some intercepted functions, which check that no internal locks are held via CheckNoLocks(). But the wrapper of fork intentionally holds some locks. This patch fixes that by using ScopedIgnoreInterceptors during the call to REAL(fork). After that, all the fork-based tests seem to pass on OS X, so let's just remove all the UNSUPPORTED: darwin annotations we have.
Differential Revision: http://reviews.llvm.org/D18409
llvm-svn: 264261
Simon Pilgrim [Thu, 24 Mar 2016 11:52:43 +0000 (11:52 +0000)]
[X86][XOP] Support for VPPERM byte shuffle instruction
This patch begins adding support for lowering to the XOP VPPERM instruction - adding the X86ISD::VPPERM opcode.
Differential Revision: http://reviews.llvm.org/D18189
llvm-svn: 264260
Kuba Brecka [Thu, 24 Mar 2016 11:50:21 +0000 (11:50 +0000)]
[tsan] Use direct syscalls for internal_mmap and internal_munmap on OS X
On OS X, internal_mmap just uses mmap, which can invoke callbacks into libmalloc (e.g. when MallocStackLogging is enabled). This can subsequently call other intercepted functions, and this breaks our Darwin-specific ThreadState initialization. Let's use direct syscalls in internal_mmap and internal_munmap. Added a testcase.
Differential Revision: http://reviews.llvm.org/D18431
llvm-svn: 264259
Daniel Sanders [Thu, 24 Mar 2016 11:40:48 +0000 (11:40 +0000)]
[mips] Tidy up cnMIPS tablegen definitions. NFC.
Summary:
In particular, make the cnMIPS predicates much more obvious and prefer
def ... : ... {
let Foo = bar;
}
over:
let Foo = bar in
def ... : ...;
Reviewers: vkalintiris
Subscribers: dsanders, llvm-commits
Differential Revision: http://reviews.llvm.org/D18354
llvm-svn: 264258
Eric Liu [Thu, 24 Mar 2016 11:25:28 +0000 (11:25 +0000)]
Revert "Added support for different VFSs in format::getStyle."
This reverts commit r264253. It is breaking the buildbot http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/2203
llvm-svn: 264257
Eric Liu [Thu, 24 Mar 2016 11:24:49 +0000 (11:24 +0000)]
Revert "removed redundant comment in format::getStyle."
This reverts commit r264254.
llvm-svn: 264256
Vasileios Kalintiris [Thu, 24 Mar 2016 10:53:28 +0000 (10:53 +0000)]
Fix sequence point warning. NFC.
llvm-svn: 264255
Eric Liu [Thu, 24 Mar 2016 10:50:26 +0000 (10:50 +0000)]
removed redundant comment in format::getStyle.
llvm-svn: 264254
Eric Liu [Thu, 24 Mar 2016 10:50:17 +0000 (10:50 +0000)]
Added support for different VFSs in format::getStyle.
Summary:
Previously, format::getStyle assumes that the given file resides in
the real file system, which prevents the use of virtual file system in testing etc.
This patch adds a parameter in format::getStyle interface so that users can specify
the right file system. By default, the file system is the real file system.
Reviewers: djasper, klimek
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D18399
llvm-svn: 264253
Eric Liu [Thu, 24 Mar 2016 10:21:00 +0000 (10:21 +0000)]
Test commit access to clang repo.
Summary: Test commit access to clang repo.
Reviewers: cfe-commits
Subscribers: klimek
Differential Revision: http://reviews.llvm.org/D18432
llvm-svn: 264252
Gabor Horvath [Thu, 24 Mar 2016 10:12:08 +0000 (10:12 +0000)]
[clang-tidy] misc-assign-operator-signature checker checks return value of all assign operators
The return value of every assign operator should be Type&, not only for copy and move assign operators.
Patch by Adam Balogh!
Reviewers: hokein, alexfh
Differential Revision: http://reviews.llvm.org/D18264
llvm-svn: 264251
James Molloy [Thu, 24 Mar 2016 09:23:51 +0000 (09:23 +0000)]
[llvm-nm] Fix r264247
I committed the test changes successfully but managed to miss the actual code change! (lack of git -a)
llvm-svn: 264249
Zlatko Buljan [Thu, 24 Mar 2016 09:22:45 +0000 (09:22 +0000)]
[mips][microMIPS] Add CodeGen support for DIV, MOD, DIVU, MODU, DDIV, DMOD, DDIVU and DMODU instructions
Differential Revision: http://reviews.llvm.org/D17137
llvm-svn: 264248
James Molloy [Thu, 24 Mar 2016 09:18:09 +0000 (09:18 +0000)]
[llvm-nm] Correct -P ELF output
Correctly add a space between the address and size when outputting in posix mode (-P).
llvm-svn: 264247
Hrvoje Varga [Thu, 24 Mar 2016 08:02:09 +0000 (08:02 +0000)]
[mips][microMIPS] Implement MTC*, MTHC* and DMTC* instructions
Differential Revision: http://reviews.llvm.org/D17328
llvm-svn: 264246
Hrvoje Varga [Thu, 24 Mar 2016 06:05:35 +0000 (06:05 +0000)]
[mips][microMIPS] Fix for "Cannot copy registers" assertion
Differential Revision: http://reviews.llvm.org/D17068
llvm-svn: 264245
Adam Nemet [Thu, 24 Mar 2016 05:15:24 +0000 (05:15 +0000)]
[LAA] Formatting fix in previous change
llvm-svn: 264244
Adam Nemet [Thu, 24 Mar 2016 04:28:47 +0000 (04:28 +0000)]
[LAA] Support memchecks involving loop-invariant addresses
We used to only allow SCEVAddRecExpr for pointer expressions in order to
be able to compute the bounds. However this is also trivially possible
for loop-invariant addresses (scUnknown) since then the bounds are the
address itself.
Interestingly, we used allow this for the special case when the
loop-invariant address happens to also be an SCEVAddRecExpr (in an outer
loop).
There are a couple more loops that are vectorized in SPEC after this.
My guess is that the main reason we don't see more because for example a
loop-invariant load is vectorized into a splat vector with several
vector-inserts. This is likely to make the vectorization unprofitable.
I.e. we don't notice that a later LICM will move all of this out of the
loop so the cost estimate should really be 0.
llvm-svn: 264243
Xiuli Pan [Thu, 24 Mar 2016 03:57:17 +0000 (03:57 +0000)]
[OpenCL] Add ocl and spir version for spir target
Summary: Add opencl.spir.version and opencl.ocl.version metadata for CodeGen to identify OpenCL version.
Reviewers: yaxunl, Anastasia
Subscribers: cfe-commits, pekka.jaaskelainen
Differential Revision: http://reviews.llvm.org/D17596
llvm-svn: 264241
Lang Hames [Thu, 24 Mar 2016 02:00:10 +0000 (02:00 +0000)]
[Support] Add conversions between Expected<T> and ErrorOr<T>.
More utilities to help with std::error_code -> Error transitions.
llvm-svn: 264238
Kostya Serebryany [Thu, 24 Mar 2016 01:32:08 +0000 (01:32 +0000)]
[libFuzzer] don't report memory leaks if we are dying due to a timeout (just use _Exit instead of exit in the timeout callback)
llvm-svn: 264237
Eric Christopher [Thu, 24 Mar 2016 01:28:25 +0000 (01:28 +0000)]
Add release notes for the removal of the silent include of altivec.h.
llvm-svn: 264236
Eric Christopher [Thu, 24 Mar 2016 01:26:08 +0000 (01:26 +0000)]
The time when -faltivec (or, on clang only, -maltivec) will magically
include altivec.h has come and gone.
Rationale: This causes modules, rewrite-includes, etc to be sad and
people should just include altivec.h in their source.
llvm-svn: 264235
Pete Cooper [Thu, 24 Mar 2016 01:16:06 +0000 (01:16 +0000)]
Avoid UB when creating empty atoms. NFC.
The stack-size.yaml test had an empty atom content array. This is
legal, but asking a BumpPtrAllocator for 0 sized data may not be
legal. Instead just avoid requesting any data when we can just return
an empty ArrayRef instead.
llvm-svn: 264234
Pete Cooper [Thu, 24 Mar 2016 01:14:10 +0000 (01:14 +0000)]
Avoid UB deref of nullptr to reference. NFC.
Its possible for file to have no entry atom which means that there
is no atom to check for being a thumb function. Instead just skip
the thumb check and set the entry address to 0, which matches the
current behaviour of getting a default initialised int from a map.
llvm-svn: 264233
Pete Cooper [Thu, 24 Mar 2016 01:05:17 +0000 (01:05 +0000)]
Use a memcpy to avoid unaligned store UB.
On a 32-bit output, we may write LC_MAIN (which contains a uint64_t) to
an unaligned address. This changes it to use a memcpy instead which is UB safe.
llvm-svn: 264232
Pete Cooper [Thu, 24 Mar 2016 01:03:44 +0000 (01:03 +0000)]
Use unaligned read to fix UB. NFC.
We were casting a potentially unaligned pointer to uint32_t and
dereferencing. As the pointer ultimately comes from the object file,
there's no way to guarantee alignment, so use the little32_t read instead.
Also, little32_t knows about endianness, so in theory this may have broken on
big endian machines.
llvm-svn: 264231
Kostya Serebryany [Thu, 24 Mar 2016 00:57:32 +0000 (00:57 +0000)]
[libFuzzer] use fdopen+vfprintf instead of fsnprintf+write
llvm-svn: 264230
Mike Spertus [Thu, 24 Mar 2016 00:38:54 +0000 (00:38 +0000)]
Display const/volatile/restrict qualifiers in Visual Studio visualizations
llvm-svn: 264229
Pete Cooper [Thu, 24 Mar 2016 00:36:37 +0000 (00:36 +0000)]
Parsed alignment should be a power of 2.
The .o path always makes sure to store a power of 2 value in the
Section alignment. However, the YAML code didn't verify this.
Added verification and updated all the tests which had a 3 but meant
to have 2^3.
llvm-svn: 264228
Eric Christopher [Thu, 24 Mar 2016 00:34:02 +0000 (00:34 +0000)]
Modules builds are necessarily compile actions, but they don't
necessarily produce object files. Turn off split dwarf if we're not
producing a file that the driver believes is an object file.
llvm-svn: 264227
JF Bastien [Thu, 24 Mar 2016 00:20:44 +0000 (00:20 +0000)]
NFC: clarify comment on lock-free macros
Used by both libstdc++ and libc++.
llvm-svn: 264226
Simon Pilgrim [Thu, 24 Mar 2016 00:14:37 +0000 (00:14 +0000)]
[X86][SSE] Added tests to ensure that consecutive loads including any/all volatiles are not combined
llvm-svn: 264225
Paul Robinson [Thu, 24 Mar 2016 00:10:03 +0000 (00:10 +0000)]
[PS4] Guarantee an instruction after a 'noreturn' call.
We need the "return address" of a noreturn call to be within the
bounds of the calling function; TrapUnreachable turns 'unreachable'
into a 'ud2' instruction, which has that desired effect.
Differential Revision: http://reviews.llvm.org/D18414
llvm-svn: 264224
Rafael Espindola [Thu, 24 Mar 2016 00:06:03 +0000 (00:06 +0000)]
Fix lazy linking of comdat members.
If not for lazy linking of linkonce GVs, comdats are just a
preprocessing before symbol resolution.
Lazy linking complicates it since when we pick a visible member of
comdat, we have to make sure the rest of it passes symbol resolution
too.
llvm-svn: 264223
Mike Aizatsky [Thu, 24 Mar 2016 00:00:08 +0000 (00:00 +0000)]
[sancov] -print-coverage-stats option to print various coverage statistics.
Differential Revision: http://reviews.llvm.org/D18418
llvm-svn: 264222
Lang Hames [Wed, 23 Mar 2016 23:57:28 +0000 (23:57 +0000)]
[Support] Make all Errors convertible to std::error_code.
This is a temporary crutch to enable code that currently uses std::error_code
to be incrementally moved over to Error. Requiring all Error instances be
convertible enables clients to call errorToErrorCode on any error (not just
ECErrors created by conversion *from* an error_code).
This patch also moves code for Error from ErrorHandling.cpp into a new
Error.cpp file.
llvm-svn: 264221
Matt Arsenault [Wed, 23 Mar 2016 23:51:45 +0000 (23:51 +0000)]
APFloat: Fix signalling nans for scalbn
llvm-svn: 264219
Vedant Kumar [Wed, 23 Mar 2016 23:51:36 +0000 (23:51 +0000)]
Fix a typo, Tiles -> Files, NFC
llvm-svn: 264218
Siva Chandra [Wed, 23 Mar 2016 23:27:23 +0000 (23:27 +0000)]
[JITLoaderGDB] Read jit entry struct manually.
Summary:
Though r264012 was fancy enough to make reading the jit entry struct
work with templates, the packing and alignment attributes do not work on
Windows. So, this change makes it plain and simple with manual reading
of the jit entry struct.
Reviewers: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D18379
llvm-svn: 264217
Nico Weber [Wed, 23 Mar 2016 23:26:59 +0000 (23:26 +0000)]
clang-cl: Add a FIXME for bumping the default msc version.
llvm-svn: 264216
Matt Arsenault [Wed, 23 Mar 2016 23:23:38 +0000 (23:23 +0000)]
AMDGPU: Remove atomic inc/dec patterns
There is no benefit to these since materializing the constant 1
requires the same number of instructions as materializing uint_max
llvm-svn: 264215
Matt Arsenault [Wed, 23 Mar 2016 23:17:29 +0000 (23:17 +0000)]
AMDGPU: Promote alloca should skip volatiles
llvm-svn: 264214
Mike Aizatsky [Wed, 23 Mar 2016 23:15:03 +0000 (23:15 +0000)]
[sancov] code readability improvement.
Summary: Reply to http://reviews.llvm.org/D18341
Differential Revision: http://reviews.llvm.org/D18406
llvm-svn: 264213
Andrew Wilkins [Wed, 23 Mar 2016 23:09:00 +0000 (23:09 +0000)]
[llgo] Increment "Debug Info Version"
Patch by Michal Cierniak!
This patch increments the "Debug Info Version" from 2 to 3.
This is a nop if you just want to generate binaries. I verified
that with and without this patch, when I run llgo -g on a Go
source file, I get exactly the same binary. The purpose of the
patch is to make it possible to run the llvm-dis tool. Without
the patch, it is impossible to disassemble files generated with
llgo:
$ llgo -c -g -emit-llvm src/hello.go
$ llvm-dis hello.o
llvm-dis: warning: ignoring debug info with an invalid version (2) in hello.o
Differential Revision: http://reviews.llvm.org/D18355
llvm-svn: 264212
Nico Weber [Wed, 23 Mar 2016 23:01:38 +0000 (23:01 +0000)]
Fix typo in test from r264210, sigh.
(The test passes both with and without this change, but it's confusing without
it.)
llvm-svn: 264211
Nico Weber [Wed, 23 Mar 2016 22:57:55 +0000 (22:57 +0000)]
clang-cl: With -fmsc-version=1900, use MSVS2015 diag formatting.
Remove tests that have neither a triple nor an explicit -fmsc-version flag,
since in the absence of an -fmsc-version flag, the implicit value of the flag
is 17 (MSVC2013) with MSVC triples but 0 (not set) for other triples, and
the default triple is platform dependent.
This relands r263974 with a test fix.
llvm-svn: 264210
Justin Bogner [Wed, 23 Mar 2016 22:54:19 +0000 (22:54 +0000)]
docs: Fix a missing language in a code-block
This should fix the docs build.
Spotted by spstarr, thanks!
llvm-svn: 264209
Justin Lebar [Wed, 23 Mar 2016 22:43:10 +0000 (22:43 +0000)]
[CUDA] Update docs to reflect that we no longer define __NVCC__.
llvm-svn: 264208
Justin Lebar [Wed, 23 Mar 2016 22:42:30 +0000 (22:42 +0000)]
[CUDA] Merge most of CodeGenCUDA/function-overload.cu into SemaCUDA/function-overload.cu.
Summary:
Previously we were using the codegen test to ensure that we choose the
right overload. But we can do this within sema, with a bit of
cleverness.
I left the constructor/destructor checks in CodeGen, because these
overloads (particularly on the destructors) are hard to check in Sema.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18386
llvm-svn: 264207
Justin Lebar [Wed, 23 Mar 2016 22:42:28 +0000 (22:42 +0000)]
[CUDA] Simplify SemaCUDA/function-overload.cu test.
Summary:
Principally, don't hardcode the line numbers of various notes. This
lets us make changes to the test without recomputing linenos everywhere.
Instead, just tell -verify that we may get 0 or more notes pointing to
the relevant function definitions. Checking that we get exactly the
right note isn't so important (and anyway is checked elsewhere).
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18385
llvm-svn: 264206
Justin Lebar [Wed, 23 Mar 2016 22:42:27 +0000 (22:42 +0000)]
[CUDA] Don't define __NVCC__.
Summary:
We decided this makes life too difficult for code authors. For example,
people may want to detect NVCC and disable variadic templates, which
NVCC does not support, but which we do.
Since people are going to have to change compiler flags *anyway* in
order to compile with clang, if they really want the old behavior, they
can pass -D__NVCC__.
Tested with tensorflow and thrust, no apparent problems.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18417
llvm-svn: 264205
Pete Cooper [Wed, 23 Mar 2016 22:19:16 +0000 (22:19 +0000)]
Fix more cases of UB from allocating 0 sized data. NFC.
The size of a section can be zero, even when it contains atoms, so
long as all of the atoms are also size 0. In this case we were
allocating space for a 0 sized buffer.
Changed this to only allocate when we need the space, but also cleaned
up all the code to use MutableArrayRef instead of uint8_t* so its much much
safer as we get bounds checking on all of our section creation logic.
llvm-svn: 264204
Matt Arsenault [Wed, 23 Mar 2016 22:14:43 +0000 (22:14 +0000)]
Add missing __builtin_bitreverse8
Also add documentation for bitreverse builtins
llvm-svn: 264203
Pete Cooper [Wed, 23 Mar 2016 22:00:09 +0000 (22:00 +0000)]
Use a memcpy to avoid unaligned store UB.
On a 32-bit output, we may write LC_SOURCE_VERSION (which contains a uint64_t) to
an unaligned address. This changes it to use a memcpy instead which is UB safe.
llvm-svn: 264202
Pete Cooper [Wed, 23 Mar 2016 21:49:31 +0000 (21:49 +0000)]
StringRef::copy shouldn't allocate anything for length 0 strings.
The BumpPtrAllocator currently doesn't handle zero length allocations well.
The discussion for how to fix that is ongoing. However, there's no need
for StringRef::copy to actually allocate anything here anyway, so just
return StringRef() when we get a zero length copy.
Reviewed by David Blaikie
llvm-svn: 264201