platform/upstream/llvm.git
8 years agoFix some confusion about what can be preempted.
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

8 years agoFix address class lookup for absolute symbols
Tamas Berghammer [Fri, 26 Feb 2016 14:21:27 +0000 (14:21 +0000)]
Fix address class lookup for absolute symbols

llvm-svn: 262016

8 years agoAdd a set of new plugins to handle Java debugging
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

8 years agoAdd support for DW_OP_push_object_address in dwarf expressions
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

8 years agoFixing an issue with the code block so that it does not appear as a list.
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

8 years agoGiving this attribute documentation group a heading; fixes a documentation generation...
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

8 years ago[LLDB][MIPS] Fix TestInferiorAssert.py for MIPS
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

8 years agoBlockGenerators: Allow values to be removed from ScalarMap
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

8 years agoIslAst: Expose run-time check generation as individual function
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

8 years ago[PM] Finish removing references to fix MSVC builds. Somehow adding base
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

8 years agoReverting breaking change. Sorry.
Chris Dewhurst [Fri, 26 Feb 2016 12:20:10 +0000 (12:20 +0000)]
Reverting breaking change. Sorry.

llvm-svn: 262007

8 years ago[PM] Speculative patch to try and fix MSVC's compilation.
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

8 years agoReviewed at reviews.llvm.org/D17133
Chris Dewhurst [Fri, 26 Feb 2016 11:46:47 +0000 (11:46 +0000)]
Reviewed at reviews.llvm.org/D17133

llvm-svn: 262005

8 years ago[PM] Introduce CRTP mixin base classes to help define passes and
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

8 years agoInitial test commit only
Chris Dewhurst [Fri, 26 Feb 2016 11:38:24 +0000 (11:38 +0000)]
Initial test commit only

llvm-svn: 262003

8 years agoUpdate to isl-0.16.1-68-g8fad211
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

8 years agoUse relative lines in CHECKs in race_on_mutex.c
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

8 years agoTest commit.
Vassil Vassilev [Fri, 26 Feb 2016 10:43:34 +0000 (10:43 +0000)]
Test commit.

llvm-svn: 261999

8 years ago[clang-tidy] Minor change in the doc
Alexander Kornienko [Fri, 26 Feb 2016 10:24:29 +0000 (10:24 +0000)]
[clang-tidy] Minor change in the doc

llvm-svn: 261998

8 years ago[PM] Remove a FIXME now that it is no longer needed.
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

8 years ago[AMDGPU] Assembler: Basic support for MIMG
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

8 years ago[MemAccInst] Introduce the '->' operator and remove the simple wrapper functions...
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

8 years agoCoalesce Read/Write/MayWrite right after we collected them. NFC
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

8 years ago[PM] Clean up some formatting with the latest clang-format.
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

8 years ago[clang-tidy] Fix a crash issue when clang-tidy runs with compilation database.
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

8 years ago[AArch64] Slight cleanup in FPLoadBalancing
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

8 years ago[X86][F16C] Added native IR half/float conversion tests.
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

8 years agollvm-dwp: provide diagnostics for duplicate DWO IDs
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

8 years agollvm-dwp: Support empty .dwo files
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

8 years ago[TSAN] XFAIL race_on_mutex.cc for MIPS
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

8 years ago[X86] Null out some redundant patterns for masked vector register to register moves...
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

8 years ago[TableGen] Fix typos in comments. NFC
Craig Topper [Fri, 26 Feb 2016 06:50:27 +0000 (06:50 +0000)]
[TableGen] Fix typos in comments. NFC

llvm-svn: 261984

8 years ago[X86] Add test cases for r261977 and fix a grammatical error.
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

8 years ago[MSan] Endianness should not matter while printing a byte
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

8 years ago[JumpThreading] Simplify Instructions first in ComputeValueKnownInPredecessors()
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

8 years ago[MSAN] Fix test SmallPreAllocatedStackThread for MIPS
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

8 years ago[X86] Remove a couple returns after llvm_unreachables. NFC
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

8 years ago[X86] Use inclusive ranges for XMM/YMM/ZMM registers in is32Extended and isX86_64Exte...
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

8 years ago[X86] Explicitly diagnose use of %xmm16-%xmm31, %ymm16-%ymm31 and %zmm16-%zmm31 when...
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

8 years ago[Driver] Disable frame pointer elimination by default if target is
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

8 years ago[MSVC Compat] Don't evaluate member base expressions w/o side effects
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

8 years agoMake TestPlatformProcessConnect to support abstract/domain sockets.
Oleksiy Vyalov [Fri, 26 Feb 2016 04:01:58 +0000 (04:01 +0000)]
Make TestPlatformProcessConnect to support abstract/domain sockets.

llvm-svn: 261974

8 years agoAnother fix the testcase introduced by r261903 - Add the missing matches
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

8 years ago[analyzer] Prune some incorrect \param doc comment annotations.
Devin Coughlin [Fri, 26 Feb 2016 03:41:31 +0000 (03:41 +0000)]
[analyzer] Prune some incorrect \param doc comment annotations.

llvm-svn: 261970

8 years agoClear alias argument vector for 'p' alias.
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

8 years agoMinor doc fix: statepoints are invokable too
Sanjoy Das [Fri, 26 Feb 2016 03:33:59 +0000 (03:33 +0000)]
Minor doc fix: statepoints are invokable too

llvm-svn: 261968

8 years agoMachineCopyPropagation: Catch copies of the form A<-B;A<-B
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

8 years agoMachineCopyPropagation: Keep scanning through instructions with regmasks
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

8 years agoAdd a newline at the end of the file.
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

8 years agoCheckers/CheckObjCDealloc.cpp: Prune "\param". [-Wdocumentation]
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:13 +0000 (03:15 +0000)]
Checkers/CheckObjCDealloc.cpp: Prune "\param". [-Wdocumentation]

llvm-svn: 261963

8 years agoOpenMPClause.h: Fix typo in \param. [-Wdocumentation]
NAKAMURA Takumi [Fri, 26 Feb 2016 03:15:09 +0000 (03:15 +0000)]
OpenMPClause.h: Fix typo in \param. [-Wdocumentation]

llvm-svn: 261962

8 years ago[OpenCL] Refine OpenCLImageAccessAttr to OpenCLAccessAttr
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

8 years agoMake vtables_blacklist dependency conditional on existence of clang target.
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

8 years ago[PGO] Add test case to ensure covmap section is not allocatable.
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

8 years ago[LoopUnrollAnalyzer] Check that we're using SCEV for the same loop we're simulating.
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

8 years ago[profile] Compute number of data entries correctly
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

8 years agoFix a warning about an unused variable in release builds.
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

8 years agoMinor code cleanups. NFC.
Junmo Park [Fri, 26 Feb 2016 02:07:36 +0000 (02:07 +0000)]
Minor code cleanups. NFC.

llvm-svn: 261955

8 years ago[UnitTests] UnrollAnalyzer: make unit-test more general so that it can cover more...
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

8 years agoAdd the "block" keyword to "thread step-in -e", and an alias that uses it: "sif ...
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

8 years agoFix Clang-tidy modernize-use-nullptr warnings in some files in source/Plugins/ABI...
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

8 years agoRemove redundant template instantiations.
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

8 years agoFix all of the unannotated switch cases to annotate the fall through or do the right...
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

8 years ago[sancov] Pruning full dominator blocks from instrumentation.
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

8 years ago[x86, SSE] add tests to show missing pcmp folds
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

8 years agoSync up with master
Xinliang David Li [Fri, 26 Feb 2016 00:56:31 +0000 (00:56 +0000)]
Sync up with master

llvm-svn: 261947

8 years agoAdd forward declarations /NFC
Xinliang David Li [Fri, 26 Feb 2016 00:54:08 +0000 (00:54 +0000)]
Add forward declarations /NFC

llvm-svn: 261946

8 years ago[analyzer] Shorten ObjcSuperDeallocChecker diagnostics.
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

8 years ago[analyzer] Fix a memory error in r261935 caught by the Windows bots.
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

8 years agoFix typo in comment.
Rui Ueyama [Fri, 26 Feb 2016 00:10:01 +0000 (00:10 +0000)]
Fix typo in comment.

llvm-svn: 261943

8 years ago[WinEH] Don't remove unannotated inline-asm calls
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

8 years agoELF: Add '*' to auto.
Rui Ueyama [Thu, 25 Feb 2016 23:58:21 +0000 (23:58 +0000)]
ELF: Add '*' to auto.

llvm-svn: 261941

8 years agoRemove a blank line at EOF. NFC
Alexander Kornienko [Thu, 25 Feb 2016 23:57:30 +0000 (23:57 +0000)]
Remove a blank line at EOF. NFC

llvm-svn: 261940

8 years agoAdd a new check, readability-redundant-string-init, that checks unnecessary string...
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

8 years agoELF: Create MIPS .rld_map section earlier.
Rui Ueyama [Thu, 25 Feb 2016 23:54:49 +0000 (23:54 +0000)]
ELF: Create MIPS .rld_map section earlier.

This is the usual way of instantiating a globally-visible section.

llvm-svn: 261938

8 years agoFix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source...
Eugene Zelenko [Thu, 25 Feb 2016 23:46:36 +0000 (23:46 +0000)]
Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source/Commands/CommandObjectThread.cpp; other minor fixes.

llvm-svn: 261936

8 years ago[analyzer] Warn on use of 'self' after call to to [super dealloc].
Devin Coughlin [Thu, 25 Feb 2016 23:36:52 +0000 (23:36 +0000)]
[analyzer] Warn on use of 'self' after call to to [super dealloc].

Referring to 'self' after a call to [super dealloc] is a use-after-free in
Objective-C because NSObject's -dealloc frees the memory pointed to by self.
This patch extends the ObjCSuperDeallocChecker to catch this error.

rdar://problem/6953275

Differential Revision: http://reviews.llvm.org/D17528

llvm-svn: 261935

8 years agoMore internal details of SROA pass to library visibility.
Owen Anderson [Thu, 25 Feb 2016 23:34:21 +0000 (23:34 +0000)]
More internal details of SROA pass to library visibility.

llvm-svn: 261934

8 years agoDelete dead code.
Rafael Espindola [Thu, 25 Feb 2016 23:16:33 +0000 (23:16 +0000)]
Delete dead code.

When this code was first added it was compensating for the code deciding
to create plt entries for directly referenced functions being too aggressive.

That has since been fixed, so we don't need this anymore.

llvm-svn: 261933

8 years agoMove common code out of target specific hooks.
Rafael Espindola [Thu, 25 Feb 2016 23:03:55 +0000 (23:03 +0000)]
Move common code out of target specific hooks.

llvm-svn: 261932

8 years agoSupport: Give ManagedStatic's helper object library visibility
Justin Bogner [Thu, 25 Feb 2016 22:05:19 +0000 (22:05 +0000)]
Support: Give ManagedStatic's helper object library visibility

It doesn't make much sense to export these symbols.

llvm-svn: 261931

8 years ago[ELF][MIPS] Calculate combined addend for R_MIPS_GOT16 against local symbol
Simon Atanasyan [Thu, 25 Feb 2016 21:33:56 +0000 (21:33 +0000)]
[ELF][MIPS] Calculate combined addend for R_MIPS_GOT16 against local symbol

R_MIPS_GOT16 relocation against local symbol requires index of a local
GOT entry which contains page address corresponds to sum of the symbol
address and addend. The addend in that case is calculated using addends
from the R_MIPS_GOT16 and paired R_MIPS_LO16 relocations.

Differential Revision: http://reviews.llvm.org/D17610

llvm-svn: 261930

8 years ago[analyzer] Reapply r261917 with a fix.
Devin Coughlin [Thu, 25 Feb 2016 21:15:16 +0000 (21:15 +0000)]
[analyzer] Reapply r261917 with a fix.

This reapplies "[analyzer] Make ObjCDeallocChecker path sensitive." (r261917)
with a fix for an error on some bots about specializing a template
from another namespace.

llvm-svn: 261929

8 years ago[ELF][MIPS] Remove redundant namespace qualifier. NFC
Simon Atanasyan [Thu, 25 Feb 2016 21:09:05 +0000 (21:09 +0000)]
[ELF][MIPS] Remove redundant namespace qualifier. NFC

llvm-svn: 261928

8 years agoReverts change r261907 and r261918
Hemant Kulkarni [Thu, 25 Feb 2016 20:47:07 +0000 (20:47 +0000)]
Reverts change r261907 and r261918

llvm-svn: 261927

8 years agomore status updates
Marshall Clow [Thu, 25 Feb 2016 20:17:03 +0000 (20:17 +0000)]
more status updates

llvm-svn: 261926

8 years agoAdded tests to make sure that the categorization traits work on incomplete types
Marshall Clow [Thu, 25 Feb 2016 20:15:47 +0000 (20:15 +0000)]
Added tests to make sure that the categorization traits work on incomplete types

llvm-svn: 261925

8 years agoELF: Split Writer::addPredefiendSections. NFC.
Rui Ueyama [Thu, 25 Feb 2016 19:34:37 +0000 (19:34 +0000)]
ELF: Split Writer::addPredefiendSections. NFC.

llvm-svn: 261924

8 years agoELF: Split Writer::writeHeader. NFC.
Rui Ueyama [Thu, 25 Feb 2016 19:28:37 +0000 (19:28 +0000)]
ELF: Split Writer::writeHeader. NFC.

llvm-svn: 261923

8 years agoUse regex in testcase, do not fail windows bots
Hongbin Zheng [Thu, 25 Feb 2016 19:16:40 +0000 (19:16 +0000)]
Use regex in testcase, do not fail windows bots

llvm-svn: 261922

8 years agoRevert "[analyzer] Make ObjCDeallocChecker path sensitive."
Devin Coughlin [Thu, 25 Feb 2016 19:13:43 +0000 (19:13 +0000)]
Revert "[analyzer] Make ObjCDeallocChecker path sensitive."

This reverts commit r261917. It broke the bots.

llvm-svn: 261921

8 years agoFix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source...
Eugene Zelenko [Thu, 25 Feb 2016 19:02:39 +0000 (19:02 +0000)]
Fix Clang-tidy modernize-use-nullptr and modernize-use-default warnings in source/Commands/CommandObjectTarget.cpp; other minor fixes.

llvm-svn: 261920

8 years agoELF: Define log() to print out message if --verbose is given.
Rui Ueyama [Thu, 25 Feb 2016 18:56:01 +0000 (18:56 +0000)]
ELF: Define log() to print out message if --verbose is given.

llvm-svn: 261919

8 years agoFix endianness issue on BE machines introduced by r261907
Hemant Kulkarni [Thu, 25 Feb 2016 18:56:01 +0000 (18:56 +0000)]
Fix endianness issue on BE machines introduced by r261907

llvm-svn: 261918

8 years ago[analyzer] Make ObjCDeallocChecker path sensitive.
Devin Coughlin [Thu, 25 Feb 2016 18:55:24 +0000 (18:55 +0000)]
[analyzer] Make ObjCDeallocChecker path sensitive.

Convert the ObjCDeallocChecker to be path sensitive. The primary
motivation for this change is to prevent false positives when -dealloc calls
helper invalidation methods to release instance variables, but it additionally
improves precision when -dealloc contains control flow. It also reduces the need
for pattern matching. The check for missing -dealloc methods remains AST-based.

Part of rdar://problem/6927496

Differential Revision: http://reviews.llvm.org/D17511

llvm-svn: 261917

8 years agoReformatted a comment to fit the 80 column limit. NFC.
David L Kreitzer [Thu, 25 Feb 2016 18:50:45 +0000 (18:50 +0000)]
Reformatted a comment to fit the 80 column limit. NFC.

llvm-svn: 261916

8 years agoAdd new OpenMP 4.5 affinity API
Jonathan Peyton [Thu, 25 Feb 2016 18:49:52 +0000 (18:49 +0000)]
Add new OpenMP 4.5 affinity API

This change introduces the new OpenMP 4.5 affinity api surrounding
OpenMP Places. There are six new entry points:

Typically called in serial region:
 * omp_get_num_places - returns the number of places available to the execution
       environment in the place list.
 * omp_get_place_num_procs - returns the number of processors available to the
       execution environment in the specified place.
 * omp_get_place_proc_ids - returns the numerical identifiers of the processors
       available to the execution environment in the specified place.

Typically called inside parallel region:
 * omp_get_place_num - returns the place number of the place to which the
       encountering thread is bound.
 * omp_get_partition_num_places - returns the number of places in the place
       partition of the innermost implicit task.
 * omp_get_partition_place_nums - returns the list of place numbers
       corresponding to the places in the place-var ICV of the innermost
       implicit task.

Differential Revision: http://reviews.llvm.org/D17417

llvm-svn: 261915

8 years agoRename so that the function name is consistent between ELF and COFF.
Rui Ueyama [Thu, 25 Feb 2016 18:49:11 +0000 (18:49 +0000)]
Rename so that the function name is consistent between ELF and COFF.

llvm-svn: 261914

8 years agoRemove default values which are always overwritten.
Rui Ueyama [Thu, 25 Feb 2016 18:49:09 +0000 (18:49 +0000)]
Remove default values which are always overwritten.

llvm-svn: 261913

8 years agoELF: Implement ICF.
Rui Ueyama [Thu, 25 Feb 2016 18:43:51 +0000 (18:43 +0000)]
ELF: Implement ICF.

This patch implements the same algorithm as LLD/COFF's ICF. I'm
not going to repeat the same description about how it works, so you
want to read the comment in ICF.cpp in this patch if you want to know
the details. This algorithm should be more powerful than the ICF
algorithm implemented in GNU gold. It can even merge mutually-recursive
functions (which is harder than one might think).

ICF is a fairly effective size optimization. Here are some examples.

 LLD:   37.14 MB -> 35.80 MB (-3.6%)
 Clang: 59.41 MB -> 57.80 MB (-2.7%)

The lacking feature is "safe" version of ICF. This merges all
identical sections. That is not compatible with a C/C++ language
requirement that two distinct functions must have distinct addresses.

But as long as your program do not rely on the pointer equality
(which is in many cases true), your program should work with the
feature. LLD works fine for example.

GNU gold implements so-called "safe ICF" that identifies functions
that are safe to merge by heuristics -- for example, gold thinks
that constructors are safe to merge because there is no way to
take an address of a constructor in C++. We have a different idea
which David Majnemer suggested that we add NOPs at beginning of
merged functions so that two or more pointers can have distinct
values. We can do whichever we want, but this patch does not
include neither.

http://reviews.llvm.org/D17529

llvm-svn: 261912