platform/upstream/llvm.git
10 years agoclang/test/Driver/fuse-ld.c: Really fix to match dos path.
NAKAMURA Takumi [Fri, 27 Jun 2014 01:32:59 +0000 (01:32 +0000)]
clang/test/Driver/fuse-ld.c: Really fix to match dos path.

llvm-svn: 211841

10 years agoRemove caching of the target machine in NVPTXInstrInfo and
Eric Christopher [Fri, 27 Jun 2014 01:27:08 +0000 (01:27 +0000)]
Remove caching of the target machine in NVPTXInstrInfo and
update constructor accordingly.

llvm-svn: 211840

10 years agoRemove comment that duplicated information in the constructor
Eric Christopher [Fri, 27 Jun 2014 01:27:06 +0000 (01:27 +0000)]
Remove comment that duplicated information in the constructor
that it's after.

llvm-svn: 211839

10 years agoRemove commented out code.
Eric Christopher [Fri, 27 Jun 2014 01:27:05 +0000 (01:27 +0000)]
Remove commented out code.

llvm-svn: 211838

10 years agoRemove extraneous parens and extraneous const cast (and fix the
Eric Christopher [Fri, 27 Jun 2014 01:27:03 +0000 (01:27 +0000)]
Remove extraneous parens and extraneous const cast (and fix the
prototype for the function to patch what we were returning).

llvm-svn: 211837

10 years agoMove the subtarget dependent features from the target machine to
Eric Christopher [Fri, 27 Jun 2014 01:14:54 +0000 (01:14 +0000)]
Move the subtarget dependent features from the target machine to
the subtarget for the MSP430 target.

llvm-svn: 211836

10 years agoRemove uses and caches of the target machine and subtarget from
Eric Christopher [Fri, 27 Jun 2014 01:14:50 +0000 (01:14 +0000)]
Remove uses and caches of the target machine and subtarget from
both MSP430InstrInfo and MSP430RegisterInfo. Remove unused member
variable StackAlign from MSP430RegisterInfo. Update constructors
accordingly.

llvm-svn: 211835

10 years agoMake clang-tidy-diff.py py3-compatible.
NAKAMURA Takumi [Fri, 27 Jun 2014 01:10:18 +0000 (01:10 +0000)]
Make clang-tidy-diff.py py3-compatible.

llvm-svn: 211834

10 years agoAdd const to sort() comparator function. Caught by gcc but not clang
Nick Kledzik [Fri, 27 Jun 2014 01:04:01 +0000 (01:04 +0000)]
Add const to sort() comparator function.  Caught by gcc but not clang

llvm-svn: 211833

10 years agoDo not inline methods of C++ containers (coming from headers).
Anna Zaks [Fri, 27 Jun 2014 01:03:05 +0000 (01:03 +0000)]
Do not inline methods of C++ containers (coming from headers).

This silences false positives (leaks, use of uninitialized value) in simple
code that uses containers such as std::vector and std::list. The analyzer
cannot reason about the internal invariances of those data structures which
leads to false positives. Until we come up with a better solution to that
problem, let's just not inline the methods of the containers and allow objects
to escape whenever such methods are called.

This just extends an already existing flag "c++-container-inlining" and applies
the heuristic not only to constructors and destructors of the containers, but
to all of their methods.

We have a bunch of distinct user reports all related to this issue
(radar://16058651, radar://16580751, radar://16384286, radar://16795491
[PR19637]).

llvm-svn: 211832

10 years agoSuppress clang-tools-extra/test/clang-tidy/clang-tidy-diff.cpp on win32 due to dos...
NAKAMURA Takumi [Fri, 27 Jun 2014 00:55:16 +0000 (00:55 +0000)]
Suppress clang-tools-extra/test/clang-tidy/clang-tidy-diff.cpp on win32 due to dos path issue.

I'll fix it later.

llvm-svn: 211831

10 years agoRemove caching of an unused subtarget from MSP430FrameLowering.
Eric Christopher [Fri, 27 Jun 2014 00:52:11 +0000 (00:52 +0000)]
Remove caching of an unused subtarget from MSP430FrameLowering.

llvm-svn: 211830

10 years agotsan: add __tsan_java_finalize interface function
Dmitry Vyukov [Fri, 27 Jun 2014 00:47:38 +0000 (00:47 +0000)]
tsan: add __tsan_java_finalize interface function
It is required to prevent false positives between object ctor and finalizer,
as otherwise they look completely unsynchronized.

llvm-svn: 211829

10 years ago[X86] AVX512: Add vbroadcasti*
Adam Nemet [Fri, 27 Jun 2014 00:43:38 +0000 (00:43 +0000)]
[X86] AVX512: Add vbroadcasti*

For now I used a separate template for these sub-vector/tuple broadcasts
rather than sharing the mem variants with avx512_int_broadcast_rm.

<rdar://problem/17402869>

llvm-svn: 211828

10 years agoRemove unnecessary caching of variables by MSP430TargetLowering and
Eric Christopher [Fri, 27 Jun 2014 00:37:59 +0000 (00:37 +0000)]
Remove unnecessary caching of variables by MSP430TargetLowering and
make the constructor more general since it only needs a target
machine.

llvm-svn: 211827

10 years agoHave MSP430SelectionDAGInfo constructor take a DataLayout rather
Eric Christopher [Fri, 27 Jun 2014 00:37:57 +0000 (00:37 +0000)]
Have MSP430SelectionDAGInfo constructor take a DataLayout rather
than a target machine since it doesn't need anything past the
DataLayout.

llvm-svn: 211826

10 years agoAdd utility to SimpleDefinedAtom to sort references
Nick Kledzik [Fri, 27 Jun 2014 00:30:31 +0000 (00:30 +0000)]
Add utility to SimpleDefinedAtom to sort references

llvm-svn: 211825

10 years agoMove all of the hexagon subtarget dependent variables from the target
Eric Christopher [Fri, 27 Jun 2014 00:27:40 +0000 (00:27 +0000)]
Move all of the hexagon subtarget dependent variables from the target
machine to the subtarget.

llvm-svn: 211824

10 years agoAllow different path separator for windows build.
Logan Chien [Fri, 27 Jun 2014 00:19:33 +0000 (00:19 +0000)]
Allow different path separator for windows build.

llvm-svn: 211823

10 years agoHave HexagonSelectionDAGInfo take a DataLayout rather than a
Eric Christopher [Fri, 27 Jun 2014 00:18:25 +0000 (00:18 +0000)]
Have HexagonSelectionDAGInfo take a DataLayout rather than a
target machine since that's all it needs.

llvm-svn: 211822

10 years agoMake HexagonISelLowering not dependent upon a HexagonTargetMachine,
Eric Christopher [Fri, 27 Jun 2014 00:13:52 +0000 (00:13 +0000)]
Make HexagonISelLowering not dependent upon a HexagonTargetMachine,
but a normal TargetMachine and remove a few cached uses.

llvm-svn: 211821

10 years agoReduce indentation.
Eric Christopher [Fri, 27 Jun 2014 00:13:49 +0000 (00:13 +0000)]
Reduce indentation.

llvm-svn: 211820

10 years agoRemove unnecessary caching of the subtarget for HexagonFrameLowering and remove the...
Eric Christopher [Fri, 27 Jun 2014 00:13:47 +0000 (00:13 +0000)]
Remove unnecessary caching of the subtarget for HexagonFrameLowering and remove the unused constructor argument.

llvm-svn: 211819

10 years agoInstrItineraryData is already on the subtarget, no reason to
Eric Christopher [Fri, 27 Jun 2014 00:13:43 +0000 (00:13 +0000)]
InstrItineraryData is already on the subtarget, no reason to
cache it on the target as well.

llvm-svn: 211818

10 years ago[StackMaps] Enable patchpoint liveness analysis per default.
Juergen Ributzka [Thu, 26 Jun 2014 23:39:52 +0000 (23:39 +0000)]
[StackMaps] Enable patchpoint liveness analysis per default.

llvm-svn: 211817

10 years ago[Stackmaps] Remove the liveness calculation for stackmap intrinsics.
Juergen Ributzka [Thu, 26 Jun 2014 23:39:44 +0000 (23:39 +0000)]
[Stackmaps] Remove the liveness calculation for stackmap intrinsics.

There is no need to calculate the liveness information for stackmaps. The
liveness information is still available for the patchpoint intrinsic and
that is also the intended usage model.

Related to <rdar://problem/17473725>

llvm-svn: 211816

10 years ago[RuntimeDyld] Teach MachOObjectImage to deregister itself with the debugger upon
Lang Hames [Thu, 26 Jun 2014 23:05:44 +0000 (23:05 +0000)]
[RuntimeDyld] Teach MachOObjectImage to deregister itself with the debugger upon
destruction the same way ELFObjectImage does.

llvm-svn: 211815

10 years agoRevert "Introduce a string_ostream string builder facilty"
Alp Toker [Thu, 26 Jun 2014 22:52:05 +0000 (22:52 +0000)]
Revert "Introduce a string_ostream string builder facilty"

Temporarily back out commits r211749, r211752 and r211754.

llvm-svn: 211814

10 years agoAvoid extra back reference key lookup in msmangler
Reid Kleckner [Thu, 26 Jun 2014 22:42:18 +0000 (22:42 +0000)]
Avoid extra back reference key lookup in msmangler

Avoid a second key lookup when the back reference key is going to be
inserted in the StringMap. The string lookups in the msmangler are the
main responsible for the huge overhead when compared to the itanium
mangler. This patch makes a small but noticeable improvement.

Reviewed by: rnk

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

Patch by Agustín Bergé!

llvm-svn: 211813

10 years agoFix an incomplete null structure spec in Python readline suppression module.
Todd Fiala [Thu, 26 Jun 2014 22:35:36 +0000 (22:35 +0000)]
Fix an incomplete null structure spec in Python readline suppression module.

Now that I'm building Linux with clang, I'm seeing more clang warnings.
This fills in some extra fields missing in the final end-of-structure-array
marker.

llvm-svn: 211812

10 years agoMove the various Subtarget dependent members down to the subtarget
Eric Christopher [Thu, 26 Jun 2014 22:33:55 +0000 (22:33 +0000)]
Move the various Subtarget dependent members down to the subtarget
for the Sparc port. Use the same initializeSubtargetDependencies
function to handle initialization similar to the other ports to
handle dependencies.

llvm-svn: 211811

10 years agoHave SparcSelectionDAGInfo take a DataLayout to initialize since
Eric Christopher [Thu, 26 Jun 2014 22:33:52 +0000 (22:33 +0000)]
Have SparcSelectionDAGInfo take a DataLayout to initialize since
that's all it needs.

llvm-svn: 211810

10 years agoRemove the storage and use of the subtarget out of the sparc frame
Eric Christopher [Thu, 26 Jun 2014 22:33:50 +0000 (22:33 +0000)]
Remove the storage and use of the subtarget out of the sparc frame
lowering code.

llvm-svn: 211809

10 years agofixed typo
Sanjay Patel [Thu, 26 Jun 2014 22:18:51 +0000 (22:18 +0000)]
fixed typo

llvm-svn: 211808

10 years agoObjective-C ARC. Provide diagnostic and fix-it
Fariborz Jahanian [Thu, 26 Jun 2014 21:22:16 +0000 (21:22 +0000)]
Objective-C ARC. Provide diagnostic and fix-it
when casting a retainable object to a objc_bridge_related
CF type with the suggestion of applying the method
specified in the bridging attribute to the object.
// rdar://15932435

llvm-svn: 211807

10 years agoDriver: Fix a misleading comment and test for what it actually did
Justin Bogner [Thu, 26 Jun 2014 20:59:39 +0000 (20:59 +0000)]
Driver: Fix a misleading comment and test for what it actually did

llvm-svn: 211806

10 years agoDriver: Remove trailing whitespace
Justin Bogner [Thu, 26 Jun 2014 20:59:36 +0000 (20:59 +0000)]
Driver: Remove trailing whitespace

llvm-svn: 211805

10 years agoFix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.
Tom Roeder [Thu, 26 Jun 2014 20:43:27 +0000 (20:43 +0000)]
Fix the new LTOCodeGenerator setup in gold to parse options before using MAttrs.

This fixes a regression that made clang -flto -Wl,--plugin-opt=-mattr=+aes not
pass the "+aes" option to the LTOCodeGenerator attributes.

llvm-svn: 211804

10 years ago[Refactor] Make the used dependence types explicit
Johannes Doerfert [Thu, 26 Jun 2014 20:24:17 +0000 (20:24 +0000)]
[Refactor] Make the used dependence types explicit

llvm-svn: 211803

10 years agoclang-cl: Don't store the cl compiler Tool on the stack (PR20131)
Hans Wennborg [Thu, 26 Jun 2014 19:59:02 +0000 (19:59 +0000)]
clang-cl: Don't store the cl compiler Tool on the stack (PR20131)

The Command will refer back to the Tool as its source,
so it has to outlive the Command.

Having the Tool on the stack would cause us to crash
when using "clang-cl -GR -fallback", because if the
Command fails, Driver::ExecuteCompilation tries to
peek at the Command's source.

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

llvm-svn: 211802

10 years agoGVN: Preserve invariant.load metadata
Arnold Schwaighofer [Thu, 26 Jun 2014 19:51:19 +0000 (19:51 +0000)]
GVN: Preserve invariant.load metadata

If both instructions to be replaced are marked invariant the resulting
instruction is invariant.

rdar://13358910

Fix by Erik Eckstein!

llvm-svn: 211801

10 years agoRemove extraneous includes from the target machines.
Eric Christopher [Thu, 26 Jun 2014 19:30:05 +0000 (19:30 +0000)]
Remove extraneous includes from the target machines.

llvm-svn: 211800

10 years agoMove all of the ARM subtarget features down onto the subtarget
Eric Christopher [Thu, 26 Jun 2014 19:30:02 +0000 (19:30 +0000)]
Move all of the ARM subtarget features down onto the subtarget
rather than the target machine.

llvm-svn: 211799

10 years agoMove the frame lowering constructors out of line to avoid circular
Eric Christopher [Thu, 26 Jun 2014 19:29:59 +0000 (19:29 +0000)]
Move the frame lowering constructors out of line to avoid circular
includes.

llvm-svn: 211798

10 years ago[Fix] Broken tests after r211796.
Johannes Doerfert [Thu, 26 Jun 2014 19:29:11 +0000 (19:29 +0000)]
[Fix] Broken tests after r211796.

llvm-svn: 211797

10 years ago[Refactor] Change memory access dump to preserve space
Johannes Doerfert [Thu, 26 Jun 2014 18:47:03 +0000 (18:47 +0000)]
[Refactor] Change memory access dump to preserve space

llvm-svn: 211796

10 years agoUse wrapped reduction dependences
Johannes Doerfert [Thu, 26 Jun 2014 18:44:14 +0000 (18:44 +0000)]
Use wrapped reduction dependences

  This change will ease the transision to multiple reductions per statement as
  we can now distinguish the effects of multiple reductions in the same
  statement.

  + Wrapped reduction dependences are used to compute privatization dependences
  + Modified test cases to account for the change

llvm-svn: 211795

10 years agoHybrid dependency analysis
Johannes Doerfert [Thu, 26 Jun 2014 18:38:08 +0000 (18:38 +0000)]
Hybrid dependency analysis

  This dependency analysis will keep track of memory accesses if they might be
  part of a reduction. If not, the dependences are tracked on a statement level.
  The main reason to do this is to reduce the compile time while beeing able to
  distinguish the effects of reduction and non-reduction accesses.

  + Adjusted two test cases

llvm-svn: 211794

10 years agoChanged Phab 'CC' to 'subscriber'; fixed typo
Sanjay Patel [Thu, 26 Jun 2014 18:12:42 +0000 (18:12 +0000)]
Changed Phab 'CC' to 'subscriber'; fixed typo

llvm-svn: 211793

10 years agoARM: Correctly identify cortex-m4 as v7em.
Jim Grosbach [Thu, 26 Jun 2014 17:24:16 +0000 (17:24 +0000)]
ARM: Correctly identify cortex-m4 as v7em.

Get the predefined macro for the architecture correct.
cortex-m4: __ARM_ARCH_7EM__
cortex-m3: __ARM_ARCH_7M__
cortex-m0: __ARM_ARCH_6M__

rdar://17420090

llvm-svn: 211792

10 years agoR600/SI: Add FP mode bits to binary.
Matt Arsenault [Thu, 26 Jun 2014 17:22:30 +0000 (17:22 +0000)]
R600/SI: Add FP mode bits to binary.

The default rounding mode to initialize the mode register needs
to be reported to the runtime. Fill in other bits a kernel
may be interested in setting for future use.

llvm-svn: 211791

10 years agoSilence unused variable and parameter warnings.
Logan Chien [Thu, 26 Jun 2014 16:58:38 +0000 (16:58 +0000)]
Silence unused variable and parameter warnings.

llvm-svn: 211790

10 years agoMake the clang-tidy-diff.py test conditional on the presence of Python 2.7. Use the...
Alexander Kornienko [Thu, 26 Jun 2014 16:32:26 +0000 (16:32 +0000)]
Make the clang-tidy-diff.py test conditional on the presence of Python 2.7. Use the python binary from the configuration.

llvm-svn: 211789

10 years agoAdd a Visualizer for VarDecl.
Zachary Turner [Thu, 26 Jun 2014 16:26:42 +0000 (16:26 +0000)]
Add a Visualizer for VarDecl.

Reviewed by: Aaron Ballman

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

llvm-svn: 211788

10 years agoOpenCL 1.1 does not define CL_VERSION_1_2 so use hardcoded number instead
Jeroen Ketema [Thu, 26 Jun 2014 15:26:38 +0000 (15:26 +0000)]
OpenCL 1.1 does not define CL_VERSION_1_2 so use hardcoded number instead

Otherwise the test evaluates to true on OpenCL 1.1 and earlier. Since we
therefore cannot use the CL_VERSION_?_? macros move them to the proper
position in the top-level header.

llvm-svn: 211787

10 years agoPropset the executables for GetProgramPath().
Logan Chien [Thu, 26 Jun 2014 14:38:46 +0000 (14:38 +0000)]
Propset the executables for GetProgramPath().

llvm-svn: 211786

10 years agoImplement the -fuse-ld= option.
Logan Chien [Thu, 26 Jun 2014 14:23:45 +0000 (14:23 +0000)]
Implement the -fuse-ld= option.

This commit implements the -fuse-ld= option, so that the user
can specify -fuse-ld=bfd to use ld.bfd.

This commit re-applies r194328 with some test case changes.
It seems that r194328 was breaking macosx or mingw build
because clang can't find ld.bfd or ld.gold in the given sysroot.
We should use -B to specify the executable search path instead.

Patch originally by David Chisnall.

llvm-svn: 211785

10 years agoFix linux build.
Logan Chien [Thu, 26 Jun 2014 13:56:23 +0000 (13:56 +0000)]
Fix linux build.

* Replace strlcpy with snprintf since strlcpy is not available
  in glibc.

* Replace __LINUX__ with __linux__.

llvm-svn: 211784

10 years agoSilencing a warning about isZExtFree hiding an inherited virtual function. No functio...
Aaron Ballman [Thu, 26 Jun 2014 13:45:47 +0000 (13:45 +0000)]
Silencing a warning about isZExtFree hiding an inherited virtual function. No functional change intended.

llvm-svn: 211783

10 years agoSilence a warning due to a comparison between signed and unsigned.
Andrea Di Biagio [Thu, 26 Jun 2014 13:41:10 +0000 (13:41 +0000)]
Silence a warning due to a comparison between signed and unsigned.

No functional change intended.

llvm-svn: 211782

10 years agoAdd support for ppc64/power8 as a host
Will Schmidt [Thu, 26 Jun 2014 13:37:03 +0000 (13:37 +0000)]
Add support for ppc64/power8 as a host

llvm-svn: 211781

10 years agoUse own class for storing the RejectLogs
Andreas Simbuerger [Thu, 26 Jun 2014 13:36:52 +0000 (13:36 +0000)]
Use own class for storing the RejectLogs

Use a container class to store the reject logs. Delegating most calls to
the internal std::map and add a few convenient shortcuts (e.g.,
hasErrors()).

llvm-svn: 211780

10 years agoadd ppc64/pwr8 as target
Will Schmidt [Thu, 26 Jun 2014 13:36:19 +0000 (13:36 +0000)]
add ppc64/pwr8 as target
includes handling DIR_PWR8 where appropriate
The P7Model Itinerary is currently tied in for use under the P8Model, and will be updated later.

llvm-svn: 211779

10 years agoAdd ppc64/power8 as a target
Will Schmidt [Thu, 26 Jun 2014 13:34:10 +0000 (13:34 +0000)]
Add ppc64/power8 as a target

llvm-svn: 211778

10 years agoAdd diagnostic remark for ReportVariantBasePtr
Andreas Simbuerger [Thu, 26 Jun 2014 13:33:35 +0000 (13:33 +0000)]
Add diagnostic remark for ReportVariantBasePtr

llvm-svn: 211777

10 years agoAdded parsing co-processor names starting with "cr"
Renato Golin [Thu, 26 Jun 2014 13:10:53 +0000 (13:10 +0000)]
Added parsing co-processor names starting with "cr"

Additional compliant GAS names for coprocessor register name
are enabled for all instruction with parameter MCK_CoprocReg:
LDC,LDC2,STC,STC2,CDP,CDP2,MCR,MCR2,MCRR,MCRR2,MRC,MRC2,MRRC,MRRC2

Patch by Andrey Kuharev.

llvm-svn: 211776

10 years agoAdd missing header for _LIBUNWIND_LOG().
Logan Chien [Thu, 26 Jun 2014 12:22:38 +0000 (12:22 +0000)]
Add missing header for _LIBUNWIND_LOG().

llvm-svn: 211775

10 years ago[OPENMP] Initial parsing and sema analysis for 'single' directive.
Alexey Bataev [Thu, 26 Jun 2014 12:05:45 +0000 (12:05 +0000)]
[OPENMP] Initial parsing and sema analysis for 'single' directive.

llvm-svn: 211774

10 years agoFix dangling reference
Andreas Simbuerger [Thu, 26 Jun 2014 11:09:13 +0000 (11:09 +0000)]
Fix dangling reference

llvm-svn: 211773

10 years ago[Driver] Improve the `isPathUnderSysroot()` function. Now it returns a
Simon Atanasyan [Thu, 26 Jun 2014 10:48:52 +0000 (10:48 +0000)]
[Driver] Improve the `isPathUnderSysroot()` function. Now it returns a
correct result even if checking paths: a) symlinks and/or b) contains relative
parts like /dir1/dir2/../dir2.

llvm-svn: 211772

10 years ago[X86] Improve the selection of SSE3/AVX addsub instructions.
Andrea Di Biagio [Thu, 26 Jun 2014 10:45:21 +0000 (10:45 +0000)]
[X86] Improve the selection of SSE3/AVX addsub instructions.

This patch teaches the backend how to canonicalize a shuffle vectors
according to the rule:

 - (shuffle (FADD A, B), (FSUB A, B), Mask) ->
       (shuffle (FSUB A, -B), (FADD A, -B), Mask)

Where 'Mask' is:
  <0,5,2,7>            ;; for v4f32 and v4f64 shuffles.
  <0,3>                ;; for v2f64 shuffles.
  <0,9,2,11,4,13,6,15> ;; for v8f32 shuffles.

In general, ISel only knows how to pattern-match a canonical
'fadd + fsub + blendi' dag node sequence into an ADDSUB instruction.

This new rule allows to convert a non-canonical dag sequence into a
canonical one that will be matched by a single ADDSUB at ISel stage.

The idea of converting a non-canonical ADDSUB into a canonical one by
swapping the first two operands of the shuffle, and then negating the
second operand of the FADD and FSUB, was originally proposed by Hal Finkel.

llvm-svn: 211771

10 years agoSupport for LLVM-style RTTI isa<...>, dyn_cast<...> et al.
Andreas Simbuerger [Thu, 26 Jun 2014 10:19:57 +0000 (10:19 +0000)]
Support for LLVM-style RTTI isa<...>, dyn_cast<...> et al.

llvm-svn: 211770

10 years agoSupport the new DiagnosticRemarks
Andreas Simbuerger [Thu, 26 Jun 2014 10:06:40 +0000 (10:06 +0000)]
Support the new DiagnosticRemarks

Add support for generating optimization remarks after completing the
detection of Scops.
The goal is to provide end-users with useful hints about opportunities that
help to increase the size of the detected Scops in their code.

By default the remark is unspecified and the debug location is empty. Future
patches have to expand on the messages generated.

This patch brings a simple test case for ReportFuncCall to demonstrate the
feature.

Reports all missed opportunities to increase the size/number of valid
Scops:
 clang <...> -Rpass-missed="polly-detect" <...>
 opt <...> -pass-remarks-missed="polly-detect" <...>

Reports beginning and end of all valid Scops:
 clang <...> -Rpass="polly-detect" <...>
 opt <...> -pass-remarks="polly-detect" <...>

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

llvm-svn: 211769

10 years agoThis patch removed duplicate code for matching patterns
Dinesh Dwivedi [Thu, 26 Jun 2014 08:57:33 +0000 (08:57 +0000)]
This patch removed duplicate code for matching patterns
which are now handled in SimplifyUsingDistributiveLaws()
(after r211261)

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

llvm-svn: 211768

10 years ago[OPENMP] Initial parsing and sema analysis for 'section' directive.
Alexey Bataev [Thu, 26 Jun 2014 08:21:58 +0000 (08:21 +0000)]
[OPENMP] Initial parsing and sema analysis for 'section' directive.

llvm-svn: 211767

10 years agoSema: Allow dllimport entities in template args for mingw
David Majnemer [Thu, 26 Jun 2014 07:48:46 +0000 (07:48 +0000)]
Sema: Allow dllimport entities in template args for mingw

Previously dllimport variables inside of template arguments relied on
not using the C++11 codepath when -fms-compatibility was set.

While this allowed us to achieve compatibility with MSVC, it did so at
the expense of MingW.

Instead, try to use the DeclRefExpr we dig out of the template argument.
If it has the dllimport attribute, accept it and skip the C++11
null-pointer check.

llvm-svn: 211766

10 years agoAdded instruction combine to transform few more negative values addition to subtracti...
Dinesh Dwivedi [Thu, 26 Jun 2014 05:40:22 +0000 (05:40 +0000)]
Added instruction combine to transform few more negative values addition to subtraction (Part 2)
This patch enables transforms for

(x + (~(y | c) + 1)   -->   x - (y | c) if c is even

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

llvm-svn: 211765

10 years agoConvert some function arguments to use ArrayRef.
Craig Topper [Thu, 26 Jun 2014 04:58:53 +0000 (04:58 +0000)]
Convert some function arguments to use ArrayRef.

llvm-svn: 211764

10 years agoConvert StringLiteralParser constructor to use ArrayRef instead of a pointer and...
Craig Topper [Thu, 26 Jun 2014 04:58:39 +0000 (04:58 +0000)]
Convert StringLiteralParser constructor to use ArrayRef instead of a pointer and count.

llvm-svn: 211763

10 years agoGlobalOpt: Don't optimize thread_local for initializers
David Majnemer [Thu, 26 Jun 2014 03:02:19 +0000 (03:02 +0000)]
GlobalOpt: Don't optimize thread_local for initializers

Folding a reference to a thread_local variable into another global
variable's initializer is very problematic, there is no relocation that
exists to represent such an access.

llvm-svn: 211762

10 years agoMake test from r211758 portable
Alp Toker [Thu, 26 Jun 2014 02:07:06 +0000 (02:07 +0000)]
Make test from r211758 portable

It turns out the -fblocks option is determined by the default tooling target
and not implied by the other two flags.

llvm-svn: 211761

10 years agoCodeGen: Improve warnings about uninstrumented files when profiling
Justin Bogner [Thu, 26 Jun 2014 01:45:07 +0000 (01:45 +0000)]
CodeGen: Improve warnings about uninstrumented files when profiling

Improve the warning when building with -fprofile-instr-use and a file
appears not to have been profiled at all. This keys on whether a
function is defined in the main file or not to avoid false negatives
when one includes a header with functions that have been profiled.

llvm-svn: 211760

10 years agoReformat RAVs to sync up following recent updates
Alp Toker [Thu, 26 Jun 2014 01:42:30 +0000 (01:42 +0000)]
Reformat RAVs to sync up following recent updates

llvm-svn: 211759

10 years agoRAV: visit copy expressions of captured variables in blocks (ObjC++11)
Alp Toker [Thu, 26 Jun 2014 01:42:24 +0000 (01:42 +0000)]
RAV: visit copy expressions of captured variables in blocks (ObjC++11)

Patch by Mathieu Baudet.

llvm-svn: 211758

10 years agoR600: Fix vector FMA
Matt Arsenault [Thu, 26 Jun 2014 01:28:05 +0000 (01:28 +0000)]
R600: Fix vector FMA

llvm-svn: 211757

10 years agoForward -u to the linker on gnutools toolchains
Reid Kleckner [Thu, 26 Jun 2014 01:08:54 +0000 (01:08 +0000)]
Forward -u to the linker on gnutools toolchains

Summary:
The BSDs and Darwin all forward the whole 'u' group, but gcc only
forwards -u so far as I can tell.  I only forward -u, since that's a
minimal change, and many people object to magically recognizing and
forwarding linker arguments.

Reviewers: chandlerc, joerg

Subscribers: cfe-commits

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

llvm-svn: 211756

10 years agoPatch from Albert J. Wong to make type_traits take advantage of gcc intrinsics in...
Marshall Clow [Thu, 26 Jun 2014 01:07:56 +0000 (01:07 +0000)]
Patch from Albert J. Wong to make type_traits take advantage of gcc intrinsics in 4.7 and later. No functionality change when using clang.

llvm-svn: 211755

10 years agoRemove forward decl of SmallVectorImpl now that we have the header
Reid Kleckner [Thu, 26 Jun 2014 01:03:20 +0000 (01:03 +0000)]
Remove forward decl of SmallVectorImpl now that we have the header

Follow up to r211749.

llvm-svn: 211754

10 years agoDon't build switch tables for dllimport and TLS variables in GEPs
Hans Wennborg [Thu, 26 Jun 2014 00:30:52 +0000 (00:30 +0000)]
Don't build switch tables for dllimport and TLS variables in GEPs

This is a follow-up to r211331, which failed to notice that we were
returning early from ValidLookupTableConstant for GEPs.

llvm-svn: 211753

10 years agoMSVC build fix following r211749
Alp Toker [Thu, 26 Jun 2014 00:25:41 +0000 (00:25 +0000)]
MSVC build fix following r211749

Avoid strndup()

llvm-svn: 211752

10 years agoFix building for iOS
Nick Kledzik [Thu, 26 Jun 2014 00:25:33 +0000 (00:25 +0000)]
Fix building for iOS

llvm-svn: 211751

10 years ago[X86] AVX512: Fix asm syntax for packed vcmp
Adam Nemet [Thu, 26 Jun 2014 00:21:12 +0000 (00:21 +0000)]
[X86] AVX512: Fix asm syntax for packed vcmp

The *_alt defs for vcmp are used by the InstParser (the asm string in the main
def is used by the InstPrinter) .  The former was accepting vector registers
as destination rather than mask registers.

llvm-svn: 211750

10 years agoIntroduce a string_ostream string builder facilty
Alp Toker [Thu, 26 Jun 2014 00:00:48 +0000 (00:00 +0000)]
Introduce a string_ostream string builder facilty

string_ostream is a safe and efficient string builder that combines opaque
stack storage with a built-in ostream interface.

small_string_ostream<bytes> additionally permits an explicit stack storage size
other than the default 128 bytes to be provided. Beyond that, storage is
transferred to the heap.

This convenient class can be used in most places an
std::string+raw_string_ostream pair or SmallString<>+raw_svector_ostream pair
would previously have been used, in order to guarantee consistent access
without byte truncation.

The patch also converts much of LLVM to use the new facility. These changes
include several probable bug fixes for truncated output, a programming error
that's no longer possible with the new interface.

llvm-svn: 211749

10 years agoMinor libc++abi changes to make things build better with gcc.
Nico Weber [Wed, 25 Jun 2014 23:55:37 +0000 (23:55 +0000)]
Minor libc++abi changes to make things build better with gcc.

llvm-svn: 211748

10 years agoFor CrashRecoveryContext::RunSafelyOnThread, propagate Darwin's PRIO_DARWIN_BG to...
Argyrios Kyrtzidis [Wed, 25 Jun 2014 23:54:50 +0000 (23:54 +0000)]
For CrashRecoveryContext::RunSafelyOnThread, propagate Darwin's PRIO_DARWIN_BG to the new thread if it is
set on the calling thread.

This allows libclang's indexing threads to propagate their priority to the clang module building threads.

rdar://17459872

llvm-svn: 211747

10 years agoMake -Wincomplete-umbrella go through the VFS
Ben Langmuir [Wed, 25 Jun 2014 23:53:43 +0000 (23:53 +0000)]
Make -Wincomplete-umbrella go through the VFS

By using vfs::recursive_directory_iterator, this warning will now fire
when some or all of a module's headers are from VFS mappings.

llvm-svn: 211746

10 years agoUpdate libc++abi to use the ARM EHABI unwinder from its libunwind.
Nico Weber [Wed, 25 Jun 2014 23:52:07 +0000 (23:52 +0000)]
Update libc++abi to use the ARM EHABI unwinder from its libunwind.

llvm-svn: 211745

10 years agoFix typo
Michael Liao [Wed, 25 Jun 2014 23:39:08 +0000 (23:39 +0000)]
Fix typo

llvm-svn: 211744

10 years agoLand support for ARM EHABI unwinding for libunwind.
Nico Weber [Wed, 25 Jun 2014 23:39:00 +0000 (23:39 +0000)]
Land support for ARM EHABI unwinding for libunwind.

This was written by:
Albert Wong <ajwong@chromium.org>
Antoine Labour <piman@chromium.org>
Dana Jansen <danakj@chromium.org
Jonathan Roelofs <jonathan@codesourcery.com>
Nico Weber <thakis@chromium.org>

llvm-svn: 211743

10 years agoMake PR20038.cpp test case portable to non-Itanium ABIs
David Blaikie [Wed, 25 Jun 2014 23:19:58 +0000 (23:19 +0000)]
Make PR20038.cpp test case portable to non-Itanium ABIs

The only call in this function is to the dtor, so there's no need to
name a non-portable mangled function name to match it.

llvm-svn: 211742