Aidan Dodds [Fri, 26 Feb 2016 18:03:06 +0000 (18:03 +0000)]
remove unused local string in IRForTarget.cpp
Committed on behalf of: ldrumm <luke.drummond@codeplay.com>
Differential revision: http://reviews.llvm.org/D16412
llvm-svn: 262043
Sunil Srivastava [Fri, 26 Feb 2016 18:01:12 +0000 (18:01 +0000)]
Minor tweak to match the overall style.
llvm-svn: 262042
Aidan Dodds [Fri, 26 Feb 2016 17:40:50 +0000 (17:40 +0000)]
Fix bug with register values byte order in expression evaluation.
The evaluation of expressions containing register values was broken for targets for which endianness differs from host.
Committed on behalf of: mamai <marianne.mailhot.sarrasin@gmail.com>
Differential revision: http://reviews.llvm.org/D17167
llvm-svn: 262041
Greg Clayton [Fri, 26 Feb 2016 17:36:44 +0000 (17:36 +0000)]
The IOHandlerProcessSTDIO is the _only_ IOHandler that gets pushed and popped from functions that are run due to something that is NOT input from the user. All other IOHandler objects result from input from the user. An issue rose up where if a command caused the process to resume and stop and process state changed, where state changed Event objects were broadcast, it would cause the IOHandlerProcessSTDIO to have its IOHandlerProcessSTDIO::Cancel() function called. This used to always write a byte to the control pipe (IOHandlerProcessSTDIO::m_pipe) even if the IOHandlerProcessSTDIO::Run() was never called. What would happen is:
(lldb) command_that_steps_process_thousands_of_times
As the "command_that_steps_process_thousands_of_times" could be a python command that resumed the process thousands of times and in doing so the IOHandlerProcessSTDIO would get pushed when the process resumed, and popped when it stoppped, causing the call to IOHandlerProcessSTDIO::Cancel(). Since the IOHandler thread is currently in IOHandlerEditline::Run() for the command interpreter handling the "command_that_steps_process_thousands_of_times" command, IOHandlerProcessSTDIO::Run() would never get called, even though the IOHandlerProcessSTDIO is on the top of the stack. This caused the command pipe to keep getting 1 bytes written each time the IOHandlerProcessSTDIO::Cancel() was called and eventually we will deadlock since the write buffer is full.
The fix here is to make sure we are in IOHandlerProcessSTDIO::Run() before we write anything to the command pipe, and just call SetIsDone(true) if we are not.
<rdar://problem/
22361364>
llvm-svn: 262040
Hongbin Zheng [Fri, 26 Feb 2016 17:05:24 +0000 (17:05 +0000)]
Introduce fine-grain dependence analysis by tagging access functions and schedules tree with either the id of memory access or memory references.
Differential Revision: http://reviews.llvm.org/D17381
llvm-svn: 262039
Renato Golin [Fri, 26 Feb 2016 17:01:45 +0000 (17:01 +0000)]
[CMAKE] Update build on recent Haiku
This patch updates cmake build scripts to build on Haiku. It adds Haiku x86_64 to config.guess.
Please consider reviewing.
Pathc by Jérôme Duval.
llvm-svn: 262038
Dmitry Vyukov [Fri, 26 Feb 2016 16:57:14 +0000 (16:57 +0000)]
tsan: split thread into logical and physical state
Currently ThreadState holds both logical state (required for race-detection algorithm, user-visible)
and physical state (various caches, most notably malloc cache). Move physical state in a new
Process entity. Besides just being the right thing from abstraction point of view, this solves several
problems:
1. Cache everything on P level in Go. Currently we cache on a mix of goroutine and OS thread levels.
This unnecessary increases memory consumption.
2. Properly handle free operations in Go. Frees are issue by GC which don't have goroutine context.
As the result we could not do anything more than just clearing shadow. For example, we leaked
sync objects and heap block descriptors.
3. This will allow to get rid of libc malloc in Go (now we have Processor context for internal allocator cache).
This in turn will allow to get rid of dependency on libc entirely.
4. Potentially we can make Processor per-CPU in C++ mode instead of per-thread, which will
reduce resource consumption.
The distinction between Thread and Processor is currently used only by Go, C++ creates Processor per OS thread,
which is equivalent to the current scheme.
llvm-svn: 262037
Sanjay Patel [Fri, 26 Feb 2016 16:56:03 +0000 (16:56 +0000)]
[x86, SSE] fold 'isPositive' vector integer operations (PR26701)
This is one of the cases shown in:
https://llvm.org/bugs/show_bug.cgi?id=26701
Shift and negate is what InstCombine appears to prefer, so I've started with that pattern.
Note that the 'pcmpeq' instructions are always generating the negative one for the actual
'pcmpgt' comparison in each case (side note: why isn't there an alias mnemonic for that?).
Differential Revision: http://reviews.llvm.org/D17630
llvm-svn: 262036
Reid Kleckner [Fri, 26 Feb 2016 16:53:19 +0000 (16:53 +0000)]
[WinEH] Fix funclet return block clobber mask placement
MBB slot index intervals are half open, not closed. getMBBEndIndex()
returns the slot index of the start of the next block in layout order.
Placing a register mask there is incorrect if the successor of the
funclet return is not laid out after the return. Clang generates IR for
catch bodies before generating the following normal code, so we never
noticed this issue until the D frontend authors filed a bug about it.
Instead, we can put the clobber mask on the last instruction of the
funclet return block. We still aren't using a register mask operand on
the CATCHRET instruction because it would cause PEI to spill all CSRs,
including XMM regs, in the prologue.
Fixes PR26679.
llvm-svn: 262035
Rui Ueyama [Fri, 26 Feb 2016 16:49:54 +0000 (16:49 +0000)]
Fix broken buildbots.
llvm-svn: 262034
Tobias Grosser [Fri, 26 Feb 2016 16:43:35 +0000 (16:43 +0000)]
ScopDetect/Info: Add option to disable invariant load hoisting
This is helpful for test case reduction and other experiments.
llvm-svn: 262033
Michael Kruse [Fri, 26 Feb 2016 16:40:35 +0000 (16:40 +0000)]
ScopDetection: Fix mix-up of isLoad and isStore.
This was accidentally introduced in r258947.
Thanks to Hongbin Zheng for finding this.
Found-by: etherzhhb
llvm-svn: 262032
Rui Ueyama [Fri, 26 Feb 2016 16:38:39 +0000 (16:38 +0000)]
Simplify. NFC.
Regarding the comment, it is out of context because it describes
what it does not do there. It got too long because it was originally
two different comments that were simply merged together.
The semantics is described in fixAbsoluteSymbols, so we don't need it.
llvm-svn: 262031
Saleem Abdulrasool [Fri, 26 Feb 2016 16:34:01 +0000 (16:34 +0000)]
Basic: fix __USER_LABEL_PREFIX__ on Cygwin
Adjust the user label prefix for cygwin x86_64.
Resolves PR26744.
llvm-svn: 262030
Michael Kruse [Fri, 26 Feb 2016 16:08:24 +0000 (16:08 +0000)]
Reduce indention. NFC.
The functions buildAccessMultiDimFixed and buildAccessMultiDimParam were
refactored from buildMemoryAccess. In their own functions, the control
flow can be shortcut and simplified using returns.
Suggested-by: etherzhhb
llvm-svn: 262029
Tamas Berghammer [Fri, 26 Feb 2016 15:47:35 +0000 (15:47 +0000)]
Add new java plugin files to the xcode project
llvm-svn: 262028
Rui Ueyama [Fri, 26 Feb 2016 15:42:06 +0000 (15:42 +0000)]
Simplify. NFC.
llvm-svn: 262027
Rui Ueyama [Fri, 26 Feb 2016 15:39:26 +0000 (15:39 +0000)]
Add comment on AMDGPU that the difference has no obvious reason.
llvm-svn: 262026
Andy Gibbs [Fri, 26 Feb 2016 15:35:16 +0000 (15:35 +0000)]
Reduce false positives in printf/scanf format checker
Summary:
The printf/scanf format checker is a little over-zealous in handling the conditional operator. This patch reduces work by not checking code-paths that are never used and reduces false positives regarding uncovered arguments, for example in the code fragment:
printf(minimal ? "%i\n" : "%i: %s\n", code, msg);
Reviewers: rtrieu
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D15636
llvm-svn: 262025
Haojian Wu [Fri, 26 Feb 2016 15:34:35 +0000 (15:34 +0000)]
[clang-tidy] Fix an assertion failure in `modernize-use-nullptr` check.
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D17640
llvm-svn: 262024
Tamas Berghammer [Fri, 26 Feb 2016 15:33:32 +0000 (15:33 +0000)]
Revert part of rL262014 as it caused issues on gcc-i386
llvm-svn: 262023
Rui Ueyama [Fri, 26 Feb 2016 15:13:24 +0000 (15:13 +0000)]
Fix unsafe dereference.
Bound may point to one element beyond the end of the
vector, so *Bound is not safe.
llvm-svn: 262022
Aidan Dodds [Fri, 26 Feb 2016 15:11:01 +0000 (15:11 +0000)]
Add mips32 software breakpoints into platform::GetSoftwareBreakpointTrapOpcode().
The software breakpoint definitions for mips32 should have been included in my
recent patch that moved the software breakpoint definitions into the base platform
class.
llvm-svn: 262021
George Rimar [Fri, 26 Feb 2016 14:48:31 +0000 (14:48 +0000)]
[ELF] - Implemented linkerscript sections padding.
BSD linker scripts contain special cases to add NOP
padding to code sections. Syntax is next:
.init:
{
KEEP (*(.init))
} =0x90909090
(0x90 is NOP)
This patch implements that functionality.
llvm-svn: 262020
George Rimar [Fri, 26 Feb 2016 14:36:36 +0000 (14:36 +0000)]
Description of symbols is avalable here:
https://docs.oracle.com/cd/E53394_01/html/E54766/u-etext-3c.html
It is said that:
_etext - The address of _etext is the first
location after the last read-only loadable segment.
_edata - The address of _edata is the first
location after the last read-write loadable segment.
_end - If the address of _edata is greater than the address
of _etext, the address of _end is same as the address of _edata.
In real life _end and _edata has different values for that case.
Both gold/bfd set _edata to the end of the last non SHT_NOBITS section.
This patch do the same for consistency.
It should fix the https://llvm.org/bugs/show_bug.cgi?id=26729.
Differential revision: http://reviews.llvm.org/D17601
llvm-svn: 262019
Rafael Espindola [Fri, 26 Feb 2016 14:33:23 +0000 (14:33 +0000)]
Refactor multiple calls to canBePreempted.
llvm-svn: 262018
Rafael Espindola [Fri, 26 Feb 2016 14:27:47 +0000 (14:27 +0000)]
Fix some confusion about what can be preempted.
For shared libraries we allow any weak undefined symbol to eventually be
resolved, even if we never see a definition in another .so. This matches
the behavior when handling other undefined symbols in a shared library.
For executables, we require seeing a definition in a .so or resolve it
to zero. This is also similar to how non weak symbols are handled.
llvm-svn: 262017
Tamas Berghammer [Fri, 26 Feb 2016 14:21:27 +0000 (14:21 +0000)]
Fix address class lookup for absolute symbols
llvm-svn: 262016
Tamas Berghammer [Fri, 26 Feb 2016 14:21:23 +0000 (14:21 +0000)]
Add a set of new plugins to handle Java debugging
The purpose of these plugins is to make LLDB capable of debugging java
code JIT-ed by the android runtime.
Differential revision: http://reviews.llvm.org/D17616
llvm-svn: 262015
Tamas Berghammer [Fri, 26 Feb 2016 14:21:10 +0000 (14:21 +0000)]
Add support for DW_OP_push_object_address in dwarf expressions
Additionally fix the type of some dwarf expression where we had a
confusion between scalar and load address types after a dereference.
Differential revision: http://reviews.llvm.org/D17604
llvm-svn: 262014
Aaron Ballman [Fri, 26 Feb 2016 13:39:38 +0000 (13:39 +0000)]
Fixing an issue with the code block so that it does not appear as a list.
llvm-svn: 262013
Aaron Ballman [Fri, 26 Feb 2016 13:30:58 +0000 (13:30 +0000)]
Giving this attribute documentation group a heading; fixes a documentation generation error.
llvm-svn: 262012
Sagar Thakur [Fri, 26 Feb 2016 13:30:34 +0000 (13:30 +0000)]
[LLDB][MIPS] Fix TestInferiorAssert.py for MIPS
Patch by Nitesh Jain.
Summary: The debug version of libc.so is require for backtracing which may not be available on all platforms.
Reviewers: ovyalov, clayborg
Subscribers: zturner, lldb-commits, mohit.bhakkad, sagar, bhushan, jaydeep
Differential: http://reviews.llvm.org/D17131
llvm-svn: 262011
Tobias Grosser [Fri, 26 Feb 2016 13:27:02 +0000 (13:27 +0000)]
BlockGenerators: Allow values to be removed from ScalarMap
This function is not yet used in Polly, but is useful to external projects that
generate multi-module code using Polly.
llvm-svn: 262010
Tobias Grosser [Fri, 26 Feb 2016 12:59:38 +0000 (12:59 +0000)]
IslAst: Expose run-time check generation as individual function
This allows to construct run-time checks for a scop without having to generate
a full AST. This is currently not taken advantage of in Polly itself, but
external users may benefit from this feature.
llvm-svn: 262009
Chandler Carruth [Fri, 26 Feb 2016 12:30:18 +0000 (12:30 +0000)]
[PM] Finish removing references to fix MSVC builds. Somehow adding base
classes changed whether the decltype of these expressions was
a reference. I'm somewhat horrified why, and there may need to be
a deeper fix on MSVC, but this should at least get the bots a step
further.
llvm-svn: 262008
Chris Dewhurst [Fri, 26 Feb 2016 12:20:10 +0000 (12:20 +0000)]
Reverting breaking change. Sorry.
llvm-svn: 262007
Chandler Carruth [Fri, 26 Feb 2016 12:17:54 +0000 (12:17 +0000)]
[PM] Speculative patch to try and fix MSVC's compilation.
No idea why r262004 triggered this, but just trying to fix somehow.
llvm-svn: 262006
Chris Dewhurst [Fri, 26 Feb 2016 11:46:47 +0000 (11:46 +0000)]
Reviewed at reviews.llvm.org/D17133
llvm-svn: 262005
Chandler Carruth [Fri, 26 Feb 2016 11:44:45 +0000 (11:44 +0000)]
[PM] Introduce CRTP mixin base classes to help define passes and
analyses in the new pass manager.
These just handle really basic stuff: turning a type name into a string
statically that is nice to print in logs, and getting a static unique ID
for each analysis.
Sadly, the format of passes in anonymous namespaces makes using their
names in tests really annoying so I've customized the names of the no-op
passes to keep tests sane to read.
This is the first of a few simplifying refactorings for the new pass
manager that should reduce boilerplate and confusion.
llvm-svn: 262004
Chris Dewhurst [Fri, 26 Feb 2016 11:38:24 +0000 (11:38 +0000)]
Initial test commit only
llvm-svn: 262003
Tobias Grosser [Fri, 26 Feb 2016 11:35:12 +0000 (11:35 +0000)]
Update to isl-0.16.1-68-g8fad211
This commit updates to the latest isl development version. There is no specific
feature we need on the Polly side, but we want to ensure test coverage for the
latest isl changes.
llvm-svn: 262001
Alexander Kornienko [Fri, 26 Feb 2016 11:09:32 +0000 (11:09 +0000)]
Use relative lines in CHECKs in race_on_mutex.c
llvm-svn: 262000
Vassil Vassilev [Fri, 26 Feb 2016 10:43:34 +0000 (10:43 +0000)]
Test commit.
llvm-svn: 261999
Alexander Kornienko [Fri, 26 Feb 2016 10:24:29 +0000 (10:24 +0000)]
[clang-tidy] Minor change in the doc
llvm-svn: 261998
Chandler Carruth [Fri, 26 Feb 2016 10:02:04 +0000 (10:02 +0000)]
[PM] Remove a FIXME now that it is no longer needed.
This has been fixed for some time, but the code hadn't been updated.
llvm-svn: 261996
Nikolay Haustov [Fri, 26 Feb 2016 09:51:05 +0000 (09:51 +0000)]
[AMDGPU] Assembler: Basic support for MIMG
Add parsing and printing of image operands. Matches legacy sp3 assembler.
Change image instruction order to have data/image/sampler operands in the beginning. This is needed because optional operands in MC are always last.
Update SITargetLowering for new order.
Add basic MC test.
Update CodeGen tests.
Review: http://reviews.llvm.org/D17574
llvm-svn: 261995
Hongbin Zheng [Fri, 26 Feb 2016 09:47:11 +0000 (09:47 +0000)]
[MemAccInst] Introduce the '->' operator and remove the simple wrapper functions. NFC
llvm-svn: 261994
Hongbin Zheng [Fri, 26 Feb 2016 09:47:08 +0000 (09:47 +0000)]
Coalesce Read/Write/MayWrite right after we collected them. NFC
llvm-svn: 261993
Chandler Carruth [Fri, 26 Feb 2016 09:37:52 +0000 (09:37 +0000)]
[PM] Clean up some formatting with the latest clang-format.
llvm-svn: 261992
Haojian Wu [Fri, 26 Feb 2016 09:19:33 +0000 (09:19 +0000)]
[clang-tidy] Fix a crash issue when clang-tidy runs with compilation database.
Summary:
The clang-tidy will trigger an assertion if it's not in the building directory.
TEST:
cd <llvm-repo>/
./build/bin/clang-tidy --checks=-*,modernize-use-nullptr -p build tools/clang/tools/extra/clang-tidy/ClangTidy.cpp
The crash issue is gone after applying this patch.
Fixes PR24834, PR26241
Reviewers: bkramer, alexfh
Subscribers: rizsotto.mailinglist, cfe-commits
Differential Revision: http://reviews.llvm.org/D17335
llvm-svn: 261991
James Molloy [Fri, 26 Feb 2016 09:10:53 +0000 (09:10 +0000)]
[AArch64] Slight cleanup in FPLoadBalancing
Instead of the convoluted if-statment we can just use getColor. This also fixes
a bug where we relied upon the parity of tablegen-generated register indexes
(instead of using the machine encoding).
llvm-svn: 261990
Simon Pilgrim [Fri, 26 Feb 2016 08:52:29 +0000 (08:52 +0000)]
[X86][F16C] Added native IR half/float conversion tests.
Placeholder tests until we start improving native vector support.
llvm-svn: 261989
David Blaikie [Fri, 26 Feb 2016 07:30:15 +0000 (07:30 +0000)]
llvm-dwp: provide diagnostics for duplicate DWO IDs
These diagnostics aren't perfect - in the case of merging several dwos
into dwps and those dwps into more dwps - just getting the message about
the original source file name might not be much help (since it's the
same in both dwos, by definition - but doesn't tell you which chain of
dwps to backtrack)
It might be worth adding the DW_AT_dwo_id to the split debug info to
improve the diagnostic experience - might help track down the duplicates
better.
llvm-svn: 261988
David Blaikie [Fri, 26 Feb 2016 07:04:58 +0000 (07:04 +0000)]
llvm-dwp: Support empty .dwo files
Though a bit odd, this is handy for a few reasons - for example, in a
build system that wants consistent input/output of build steps, but
where split-dwarf might be overriden/disabled by the user on a per-file
basis.
llvm-svn: 261987
Sagar Thakur [Fri, 26 Feb 2016 07:01:24 +0000 (07:01 +0000)]
[TSAN] XFAIL race_on_mutex.cc for MIPS
This test expects pthread_mutex_init in the frame #0 of thread T1 but we
get memset at frame #0 because memset that is called from pthread_init_mutex
is being intercepted by TSan
llvm-svn: 261986
Craig Topper [Fri, 26 Feb 2016 06:50:29 +0000 (06:50 +0000)]
[X86] Null out some redundant patterns for masked vector register to register moves. These can be accomplished with both aligned and unaligned opcodes.
Currently aligned is what is being used so remove the redundant patterns for the unaligned versions. But don't do this for the byte and word vector types since they don't have aligned versions.
llvm-svn: 261985
Craig Topper [Fri, 26 Feb 2016 06:50:27 +0000 (06:50 +0000)]
[TableGen] Fix typos in comments. NFC
llvm-svn: 261984
Craig Topper [Fri, 26 Feb 2016 06:50:24 +0000 (06:50 +0000)]
[X86] Add test cases for r261977 and fix a grammatical error.
llvm-svn: 261983
Mohit K. Bhakkad [Fri, 26 Feb 2016 06:44:10 +0000 (06:44 +0000)]
[MSan] Endianness should not matter while printing a byte
Reviewers: eugenis
Subscribers: jaydeep, sagar, llvm-commits
Differential Revision: http://reviews.llvm.org/D17264
Differential Revision: http://reviews.llvm.org/D17563
llvm-svn: 261982
Haicheng Wu [Fri, 26 Feb 2016 06:06:04 +0000 (06:06 +0000)]
[JumpThreading] Simplify Instructions first in ComputeValueKnownInPredecessors()
This change tries to find more opportunities to thread over basic blocks.
llvm-svn: 261981
Sagar Thakur [Fri, 26 Feb 2016 05:56:54 +0000 (05:56 +0000)]
[MSAN] Fix test SmallPreAllocatedStackThread for MIPS
Summary: Msan was intercepting version 2.1 of the pthread_create function which was making it to crash in libc because __pthread_create_2_1 modifies the stack attributes of the thread. Intercepting the correct version fixes the test SmallPreAllocatedStackThread.
Reviewers: eugenis, samsonov
Subscribers: llvm-commits, mohit.bhakkad, jaydeep
Differential: http://reviews.llvm.org/D17603
llvm-svn: 261980
Craig Topper [Fri, 26 Feb 2016 05:29:39 +0000 (05:29 +0000)]
[X86] Remove a couple returns after llvm_unreachables. NFC
llvm-svn: 261979
Craig Topper [Fri, 26 Feb 2016 05:29:35 +0000 (05:29 +0000)]
[X86] Use inclusive ranges for XMM/YMM/ZMM registers in is32Extended and isX86_64ExtendedReg. NFC
llvm-svn: 261978
Craig Topper [Fri, 26 Feb 2016 05:29:32 +0000 (05:29 +0000)]
[X86] Explicitly diagnose use of %xmm16-%xmm31, %ymm16-%ymm31 and %zmm16-%zmm31 when AVX512 is not enabled in the asm parser.
llvm-svn: 261977
Akira Hatanaka [Fri, 26 Feb 2016 05:07:00 +0000 (05:07 +0000)]
[Driver] Disable frame pointer elimination by default if target is
x86_64-pc-win32-macho.
rdar://problem/
24470634
llvm-svn: 261976
David Majnemer [Fri, 26 Feb 2016 04:23:19 +0000 (04:23 +0000)]
[MSVC Compat] Don't evaluate member base expressions w/o side effects
A member expression's base doesn't always have an impact on what the
member decl would evaluate to. In such a case, the base is used as a
poor man's scope qualifier.
This fixes PR26738.
Differential Revision: http://reviews.llvm.org/D17619
llvm-svn: 261975
Oleksiy Vyalov [Fri, 26 Feb 2016 04:01:58 +0000 (04:01 +0000)]
Make TestPlatformProcessConnect to support abstract/domain sockets.
llvm-svn: 261974
Hongbin Zheng [Fri, 26 Feb 2016 03:41:47 +0000 (03:41 +0000)]
Another fix the testcase introduced by r261903 - Add the missing matches
llvm-svn: 261971
Devin Coughlin [Fri, 26 Feb 2016 03:41:31 +0000 (03:41 +0000)]
[analyzer] Prune some incorrect \param doc comment annotations.
llvm-svn: 261970
Chaoren Lin [Fri, 26 Feb 2016 03:36:27 +0000 (03:36 +0000)]
Clear alias argument vector for 'p' alias.
Summary: This fixes the 'p' command which should be aliased to 'expresion --'.
Reviewers: jingham
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D17634
llvm-svn: 261969
Sanjoy Das [Fri, 26 Feb 2016 03:33:59 +0000 (03:33 +0000)]
Minor doc fix: statepoints are invokable too
llvm-svn: 261968
Matthias Braun [Fri, 26 Feb 2016 03:18:55 +0000 (03:18 +0000)]
MachineCopyPropagation: Catch copies of the form A<-B;A<-B
Differential Revision: http://reviews.llvm.org/D17475
llvm-svn: 261966
Matthias Braun [Fri, 26 Feb 2016 03:18:50 +0000 (03:18 +0000)]
MachineCopyPropagation: Keep scanning through instructions with regmasks
This also simplifies the code by removing the overly conservative
NoInterveningSideEffect() function. This function checked:
- That the two copies belong to the same block: We only process one
block at a time and clear our maps in between it is impossible to find a
copy from a different block.
- There is no terminator between the two copy instructions: This is not
allowed anyway (the MachineVerifier would complain)
- Does not have instructions with hasUnmodeledSideEffects() or isCall()
set: Even for those instructuction we must have all clobbers/defs of
registers explicit as an operand. If the register is explicitely
clobbered we would never come to the point of checking for
NoInterveningSideEffect() anyway.
(I also checked this with a temporary build of the test-suite with all
potentially failing conditions in NoInterveningSideEffect() turned into
asserts)
Differential Revision: http://reviews.llvm.org/D17474
llvm-svn: 261965
Rafael Espindola [Fri, 26 Feb 2016 03:17:25 +0000 (03:17 +0000)]
Add a newline at the end of the file.
llvm-svn: 261964
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:13 +0000 (03:15 +0000)]
Checkers/CheckObjCDealloc.cpp: Prune "\param". [-Wdocumentation]
llvm-svn: 261963
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:09 +0000 (03:15 +0000)]
OpenMPClause.h: Fix typo in \param. [-Wdocumentation]
llvm-svn: 261962
Xiuli Pan [Fri, 26 Feb 2016 03:13:03 +0000 (03:13 +0000)]
[OpenCL] Refine OpenCLImageAccessAttr to OpenCLAccessAttr
Summary:
OpenCL access qualifiers are now not only used for image types, refine it to avoid misleading,
Add semacheck for OpenCL access qualifier as well as test caees.
Reviewers: pekka.jaaskelainen, Anastasia, aaron.ballman
Subscribers: aaron.ballman, cfe-commits
Differential Revision: http://reviews.llvm.org/D16040
llvm-svn: 261961
Peter Collingbourne [Fri, 26 Feb 2016 03:07:33 +0000 (03:07 +0000)]
Make vtables_blacklist dependency conditional on existence of clang target.
llvm-svn: 261960
Xinliang David Li [Fri, 26 Feb 2016 03:05:10 +0000 (03:05 +0000)]
[PGO] Add test case to ensure covmap section is not allocatable.
Differential Revision: http://reviews.llvm.org/D17324
llvm-svn: 261959
Michael Zolotukhin [Fri, 26 Feb 2016 02:57:05 +0000 (02:57 +0000)]
[LoopUnrollAnalyzer] Check that we're using SCEV for the same loop we're simulating.
Summary: Check that we're using SCEV for the same loop we're simulating. Otherwise, we might try to use the iteration number of the current loop in SCEV expressions for inner/outer loops IVs, which is clearly incorrect.
Reviewers: chandlerc, hfinkel
Subscribers: sanjoy, llvm-commits, mzolotukhin
Differential Revision: http://reviews.llvm.org/D17632
llvm-svn: 261958
Vedant Kumar [Fri, 26 Feb 2016 02:49:41 +0000 (02:49 +0000)]
[profile] Compute number of data entries correctly
Compiler-rt miscalculates the number of entries in the __llvm_prf_data section
on i386 Darwin. This results in a number of test failures (which we started
catching after r261344).
The fix we attempted earlier is insufficient (r261683). It caused some tests to
start passing again, but that hid the fact that we drop some data entries.
This patch should fix the real problem. It fixes the way we compute DataSize by
taking into account the way the Darwin linker lays out __llvm_prf_data.
Differential Revision: http://reviews.llvm.org/D17623
llvm-svn: 261957
Chandler Carruth [Fri, 26 Feb 2016 02:25:06 +0000 (02:25 +0000)]
Fix a warning about an unused variable in release builds.
llvm-svn: 261956
Junmo Park [Fri, 26 Feb 2016 02:07:36 +0000 (02:07 +0000)]
Minor code cleanups. NFC.
llvm-svn: 261955
Michael Zolotukhin [Fri, 26 Feb 2016 01:44:04 +0000 (01:44 +0000)]
[UnitTests] UnrollAnalyzer: make unit-test more general so that it can cover more cases in future.
llvm-svn: 261954
Jim Ingham [Fri, 26 Feb 2016 01:37:30 +0000 (01:37 +0000)]
Add the "block" keyword to "thread step-in -e", and an alias that uses it: "sif <target function>" - i.e. step-into-function
to allow you to step through a complex calling sequence into a particular function that may span multiple lines. Also some
test cases for this and the --step-target feature.
llvm-svn: 261953
Eugene Zelenko [Fri, 26 Feb 2016 01:33:58 +0000 (01:33 +0000)]
Fix Clang-tidy modernize-use-nullptr warnings in some files in source/Plugins/ABI; other minor fixes.
llvm-svn: 261952
Rui Ueyama [Fri, 26 Feb 2016 01:30:35 +0000 (01:30 +0000)]
Remove redundant template instantiations.
This class is used only in this translation unit, so no need
to instantiate them explicitly.
llvm-svn: 261951
Greg Clayton [Fri, 26 Feb 2016 01:20:20 +0000 (01:20 +0000)]
Fix all of the unannotated switch cases to annotate the fall through or do the right thing and break.
llvm-svn: 261950
Mike Aizatsky [Fri, 26 Feb 2016 01:17:22 +0000 (01:17 +0000)]
[sancov] Pruning full dominator blocks from instrumentation.
Summary:
This is the first simple attempt to reduce number of coverage-
instrumented blocks.
If a basic block dominates all its successors, then its coverage
information is useless to us. Ingore such blocks if
santizer-coverage-prune-tree option is set.
Differential Revision: http://reviews.llvm.org/D17626
llvm-svn: 261949
Sanjay Patel [Fri, 26 Feb 2016 01:14:27 +0000 (01:14 +0000)]
[x86, SSE] add tests to show missing pcmp folds
llvm-svn: 261948
Xinliang David Li [Fri, 26 Feb 2016 00:56:31 +0000 (00:56 +0000)]
Sync up with master
llvm-svn: 261947
Xinliang David Li [Fri, 26 Feb 2016 00:54:08 +0000 (00:54 +0000)]
Add forward declarations /NFC
llvm-svn: 261946
Devin Coughlin [Fri, 26 Feb 2016 00:47:42 +0000 (00:47 +0000)]
[analyzer] Shorten ObjcSuperDeallocChecker diagnostics.
Change "use of 'self' after it has been freed with call to [super dealloc]" to
"use of 'self' after it has been deallocated" and "use of instance variable
'_ivar' after the instance has been freed with call to [super dealloc]" to
"use of instance variable '_ivar' after 'self' has been deallocated".
llvm-svn: 261945
Devin Coughlin [Fri, 26 Feb 2016 00:23:41 +0000 (00:23 +0000)]
[analyzer] Fix a memory error in r261935 caught by the Windows bots.
It was using a temporary StringRef after its underlying storage was freed.
llvm-svn: 261944
Rui Ueyama [Fri, 26 Feb 2016 00:10:01 +0000 (00:10 +0000)]
Fix typo in comment.
llvm-svn: 261943
David Majnemer [Fri, 26 Feb 2016 00:04:25 +0000 (00:04 +0000)]
[WinEH] Don't remove unannotated inline-asm calls
Inline-asm calls aren't annotated with funclet bundle operands because
they don't throw and cannot be inlined through. We shouldn't require
them to bear an funclet bundle operand.
llvm-svn: 261942
Rui Ueyama [Thu, 25 Feb 2016 23:58:21 +0000 (23:58 +0000)]
ELF: Add '*' to auto.
llvm-svn: 261941
Alexander Kornienko [Thu, 25 Feb 2016 23:57:30 +0000 (23:57 +0000)]
Remove a blank line at EOF. NFC
llvm-svn: 261940
Alexander Kornienko [Thu, 25 Feb 2016 23:57:23 +0000 (23:57 +0000)]
Add a new check, readability-redundant-string-init, that checks unnecessary string initializations.
Reviewers: hokein, alexfh
Subscribers: cfe-commits
Patch by Shuai Wang!
Differential Revision: http://reviews.llvm.org/D17586
llvm-svn: 261939