Saleem Abdulrasool [Fri, 27 Jun 2014 05:17:41 +0000 (05:17 +0000)]
lldb: remove adhoc implementation of array_sizeof
Replace adhoc inline implementation of llvm::array_lengthof in favour of the
implementation in LLVM. This is simply a cleanup change, no functional change
intended.
llvm-svn: 211868
Andrew Trick [Fri, 27 Jun 2014 05:09:36 +0000 (05:09 +0000)]
Left out the NDEBUG in the previous checkin.
llvm-svn: 211867
Saleem Abdulrasool [Fri, 27 Jun 2014 05:06:41 +0000 (05:06 +0000)]
Driver: use GNU::Link for the Generic_GCC toolchain
This changes the behaviour of the driver for linking to match that of the
Generic_GCC::Assemble. The default link should use "ld" rather than "gcc" for
the linker as gcc does. This avoids the unnecessary round-tripping through gcc.
It also is much more reasonable behaviour from the user's perspective. This
should have been updated with SVN r195554 which changed the behaviour of
Generic_GCC::Assemble.
The gcc_forward test needs to be updated to mark the fact that -march is a flag
for GCC not ld. This was updated as a typo fix, but added a check for a flag
that is not a link flag.
The bindings test covers the change for testing, and thus no new test was added.
llvm-svn: 211866
Andrew Trick [Fri, 27 Jun 2014 04:57:05 +0000 (04:57 +0000)]
MachineScheduler: add some book-keeping to fix an assert.
Fixe for Bug 20057 - Assertion failied in llvm::SUnit* llvm::SchedBoundary::pickOnlyChoice(): Assertion `i <= (HazardRec->getMaxLookAhead() + MaxObservedStall) && "permanent hazard"'
Thanks to Chad for the test case.
llvm-svn: 211865
Alp Toker [Fri, 27 Jun 2014 04:48:32 +0000 (04:48 +0000)]
Propagate const-correctness into parseBitcodeFile()
llvm-svn: 211864
Eric Christopher [Fri, 27 Jun 2014 04:38:30 +0000 (04:38 +0000)]
Have MipsSelectionDAGInfo constructor take a DataLayout rather
than a target machine since it doesn't need anything past the
DataLayout.
llvm-svn: 211863
Alp Toker [Fri, 27 Jun 2014 04:34:44 +0000 (04:34 +0000)]
CodeGenAction: don't duplicate entire .ll/.bc files into memory
Requires supporting changes from LLVM r211861.
llvm-svn: 211862
Alp Toker [Fri, 27 Jun 2014 04:33:58 +0000 (04:33 +0000)]
ParseIR: don't take ownership of the MemoryBuffer
clang was needlessly duplicating whole memory buffer contents in an attempt to
satisfy unclear ownership semantics. Let's just hide internal LLVM quirks and
present a simple non-owning interface.
The public C API preserves previous behaviour for stability.
llvm-svn: 211861
Eric Christopher [Fri, 27 Jun 2014 04:33:14 +0000 (04:33 +0000)]
Move NVPTX subtarget dependent variables from the target machine
to the subtarget.
llvm-svn: 211860
Matt Arsenault [Fri, 27 Jun 2014 03:55:55 +0000 (03:55 +0000)]
R600: Add some testcases for promote alloca pass.
More complicated GEPs are skipped. Add some tests to
actually stress this skipping.
llvm-svn: 211859
Eric Christopher [Fri, 27 Jun 2014 03:45:49 +0000 (03:45 +0000)]
Use the target lowering we can get off of the DAG rather than off
of the cached target machine.
llvm-svn: 211858
Alexey Bataev [Fri, 27 Jun 2014 03:33:10 +0000 (03:33 +0000)]
[OPENMP] Added several test cases in nesting of OpenMP regions test after review from Samuel F Antao.
llvm-svn: 211857
Alp Toker [Fri, 27 Jun 2014 03:11:38 +0000 (03:11 +0000)]
Account for differences in grep implementations
llvm-svn: 211856
Saleem Abdulrasool [Fri, 27 Jun 2014 03:11:18 +0000 (03:11 +0000)]
Support: update DLLCharacteristics enumeration
Add the new AppContainer characteristic which is import for Windows Store
(Metro) compatible applications. Add the new Control Flow Guard flag to bring
the enumeration up to date with the current values as of Windows 8.1.
llvm-svn: 211855
Saleem Abdulrasool [Fri, 27 Jun 2014 03:11:14 +0000 (03:11 +0000)]
Support: tweak comment layout
Make the comment layout more uniform. NFC.
llvm-svn: 211854
Alp Toker [Fri, 27 Jun 2014 02:59:39 +0000 (02:59 +0000)]
Restore test from r211844 skipping '.file' directives
At least this answers the question of whether .bc/.ll input processed by the
frontend produces identical output to the original compilation.
llvm-svn: 211853
Rafael Espindola [Fri, 27 Jun 2014 02:51:21 +0000 (02:51 +0000)]
Don't force the build of toos/lto as a static lib.
Any uses of tools/lto as a static lib should probably move to lib/LTO.
This was also never implemented in the configure build, so this reduces
the differences among the two.
llvm-svn: 211852
Bruce Mitchener [Fri, 27 Jun 2014 02:42:12 +0000 (02:42 +0000)]
Fix a few typos.
llvm-svn: 211851
Matt Arsenault [Fri, 27 Jun 2014 02:36:59 +0000 (02:36 +0000)]
Fix missing newline and simplify debug printing.
llvm-svn: 211850
Alp Toker [Fri, 27 Jun 2014 02:35:57 +0000 (02:35 +0000)]
Partially disable test from r211844
ELF assembly contains .line directives that differ based on the input filename.
Weaken the test while considering options.
llvm-svn: 211849
Matt Arsenault [Fri, 27 Jun 2014 02:33:47 +0000 (02:33 +0000)]
R600: Move load/store ReplaceNodeResults to common code.
Future patches will want to custom lower loads on SI.
llvm-svn: 211848
Eric Christopher [Fri, 27 Jun 2014 02:05:24 +0000 (02:05 +0000)]
Move the constructor for NVPTXFrameLowering into the implementation
file in preparation for the subtarget move.
llvm-svn: 211847
Eric Christopher [Fri, 27 Jun 2014 02:05:22 +0000 (02:05 +0000)]
Remove unnecessary caching of the TargetMachine on NVPTXFrameLowering.
Adjust the constructor accordingly.
llvm-svn: 211846
Eric Christopher [Fri, 27 Jun 2014 02:05:19 +0000 (02:05 +0000)]
Rework the logic for setting the TargetName. This appears to
be shorter and identical in goal.
llvm-svn: 211845
Alp Toker [Fri, 27 Jun 2014 02:04:28 +0000 (02:04 +0000)]
Add test coverage for .bc input in the frontend
Test that we can consume LLVM bitcode and additionally check that it produces
the same output as a direct compilation.
The feature is crashy and has gone untested until now, but we might as well
provide some coverage as long as it remains in tree.
Also test LL source input in the same way because the existing tests for that
don't look convincing.
llvm-svn: 211844
Alp Toker [Fri, 27 Jun 2014 02:04:21 +0000 (02:04 +0000)]
Remove .bc from test config.suffixes
This was unused. Besides, a binary file can't really contain lit ShTests.
llvm-svn: 211843
Bruce Mitchener [Fri, 27 Jun 2014 01:58:47 +0000 (01:58 +0000)]
Test commit: wether -> whether.
llvm-svn: 211842
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
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
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
Eric Christopher [Fri, 27 Jun 2014 01:27:05 +0000 (01:27 +0000)]
Remove commented out code.
llvm-svn: 211838
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
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
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
NAKAMURA Takumi [Fri, 27 Jun 2014 01:10:18 +0000 (01:10 +0000)]
Make clang-tidy-diff.py py3-compatible.
llvm-svn: 211834
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
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
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
Eric Christopher [Fri, 27 Jun 2014 00:52:11 +0000 (00:52 +0000)]
Remove caching of an unused subtarget from MSP430FrameLowering.
llvm-svn: 211830
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
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
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
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
Nick Kledzik [Fri, 27 Jun 2014 00:30:31 +0000 (00:30 +0000)]
Add utility to SimpleDefinedAtom to sort references
llvm-svn: 211825
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
Logan Chien [Fri, 27 Jun 2014 00:19:33 +0000 (00:19 +0000)]
Allow different path separator for windows build.
llvm-svn: 211823
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
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
Eric Christopher [Fri, 27 Jun 2014 00:13:49 +0000 (00:13 +0000)]
Reduce indentation.
llvm-svn: 211820
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
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
Juergen Ributzka [Thu, 26 Jun 2014 23:39:52 +0000 (23:39 +0000)]
[StackMaps] Enable patchpoint liveness analysis per default.
llvm-svn: 211817
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
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
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
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
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
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
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
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
Sanjay Patel [Thu, 26 Jun 2014 22:18:51 +0000 (22:18 +0000)]
fixed typo
llvm-svn: 211808
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
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
Justin Bogner [Thu, 26 Jun 2014 20:59:36 +0000 (20:59 +0000)]
Driver: Remove trailing whitespace
llvm-svn: 211805
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
Johannes Doerfert [Thu, 26 Jun 2014 20:24:17 +0000 (20:24 +0000)]
[Refactor] Make the used dependence types explicit
llvm-svn: 211803
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
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
Eric Christopher [Thu, 26 Jun 2014 19:30:05 +0000 (19:30 +0000)]
Remove extraneous includes from the target machines.
llvm-svn: 211800
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
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
Johannes Doerfert [Thu, 26 Jun 2014 19:29:11 +0000 (19:29 +0000)]
[Fix] Broken tests after r211796.
llvm-svn: 211797
Johannes Doerfert [Thu, 26 Jun 2014 18:47:03 +0000 (18:47 +0000)]
[Refactor] Change memory access dump to preserve space
llvm-svn: 211796
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
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
Sanjay Patel [Thu, 26 Jun 2014 18:12:42 +0000 (18:12 +0000)]
Changed Phab 'CC' to 'subscriber'; fixed typo
llvm-svn: 211793
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
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
Logan Chien [Thu, 26 Jun 2014 16:58:38 +0000 (16:58 +0000)]
Silence unused variable and parameter warnings.
llvm-svn: 211790
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
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
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
Logan Chien [Thu, 26 Jun 2014 14:38:46 +0000 (14:38 +0000)]
Propset the executables for GetProgramPath().
llvm-svn: 211786
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
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
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
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
Will Schmidt [Thu, 26 Jun 2014 13:37:03 +0000 (13:37 +0000)]
Add support for ppc64/power8 as a host
llvm-svn: 211781
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
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
Will Schmidt [Thu, 26 Jun 2014 13:34:10 +0000 (13:34 +0000)]
Add ppc64/power8 as a target
llvm-svn: 211778
Andreas Simbuerger [Thu, 26 Jun 2014 13:33:35 +0000 (13:33 +0000)]
Add diagnostic remark for ReportVariantBasePtr
llvm-svn: 211777
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
Logan Chien [Thu, 26 Jun 2014 12:22:38 +0000 (12:22 +0000)]
Add missing header for _LIBUNWIND_LOG().
llvm-svn: 211775
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
Andreas Simbuerger [Thu, 26 Jun 2014 11:09:13 +0000 (11:09 +0000)]
Fix dangling reference
llvm-svn: 211773
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
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
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
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