summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix N^2 instruction ordering comparisons in GVNHoist.Daniel Berlin2016-07-251-19/+18
| | | | | | This fixes GVNHoist's portion of PR28670. llvm-svn: 276658
* NFC: Refactor GVNHoist class so not everything is publicDaniel Berlin2016-07-251-37/+36
| | | | llvm-svn: 276657
* [cc1as] Add MCTargetOptions argument to createAsmBackendJoel Jones2016-07-251-2/+4
| | | | | | | | | | | | | Allow an assembler backend to get ABI options. This is to match the changes to http://reviews.llvm.org/D16213. Tested with "make check-clang" Patch by: Joel Jones Differential Revision: https://reviews.llvm.org/D16538 llvm-svn: 276655
* MC] Provide an MCTargetOptions to implementors of MCAsmBackendCtorTy, NFCJoel Jones2016-07-2525-55/+114
| | | | | | | | | | | | | | | Some targets, notably AArch64 for ILP32, have different relocation encodings based upon the ABI. This is an enabling change, so a future patch can use the ABIName from MCTargetOptions to chose which relocations to use. Tested using check-llvm. The corresponding change to clang is in: http://reviews.llvm.org/D16538 Patch by: Joel Jones Differential Revision: https://reviews.llvm.org/D16213 llvm-svn: 276654
* Support '#pragma once' in headers when using PCHSunil Srivastava2016-07-253-1/+21
| | | | | | | | | | | | | The '#pragma once' directive was erroneously ignored when encountered in the header-file specified in generate-PCH-mode. This resulted in compile-time errors in some cases with legal code, and also a misleading warning being produced. Patch by Warren Ristow! Differential Revision: http://reviews.llvm.org/D19815 llvm-svn: 276653
* StringSwitch cannot be copied or moved.Jordan Rose2016-07-252-7/+14
| | | | | | | | | | | | ...but most importantly, it cannot be used well with 'auto', because the inferred type is StringSwitch rather than the result type. This is a problem because StringSwitch stores addresses of temporary values rather than copying or moving the value into its own storage. Changing this uncovered the bug in PassBuilder, also in this patch. Clang doesn't seem to have any occurrences of the issue. llvm-svn: 276652
* Revert "MPITypeMismatchCheck for Clang-Tidy"Alexander Kornienko2016-07-2512-776/+0
| | | | | | This reverts commit r276640. Breaks multiple buildbots. llvm-svn: 276651
* Revert "Remove trailing spaces."Alexander Kornienko2016-07-251-21/+21
| | | | | | This reverts commit r276641. Breaks multiple buildbots. llvm-svn: 276650
* Remove trailing whitespaces.Rui Ueyama2016-07-259-12/+12
| | | | llvm-svn: 276649
* AVX-512: Fixed [US]INT_TO_FP selection for i1 vectors.Elena Demikhovsky2016-07-252-0/+368
| | | | | | | | It failed with assertion before this patch. Differential Revision: https://reviews.llvm.org/D22735 llvm-svn: 276648
* [Myriad]: better compatibility with vendor sourceDouglas Katzman2016-07-253-22/+35
| | | | | | | | - Accept ma{2100,2150,2150} for -mcpu - Define more preprocessor macros - Don't append "le/" to little-endian lib dirs llvm-svn: 276646
* GPGPU: Load GPU kernelsTobias Grosser2016-07-255-31/+183
| | | | | | | We embed the PTX code into the host IR as a global variable and compile it at run-time into a GPU kernel. llvm-svn: 276645
* Remove useless pass from the pipeline in ↵Wei Mi2016-07-251-2/+2
| | | | | | test/Analysis/Dominators/2007-01-14-BreakCritEdges.ll. llvm-svn: 276644
* [ELF/LinkerScript] Use correct section name in a test.Davide Italiano2016-07-251-1/+1
| | | | llvm-svn: 276642
* Remove trailing spaces.Alexander Kornienko2016-07-251-21/+21
| | | | llvm-svn: 276641
* MPITypeMismatchCheck for Clang-TidyAlexander Kornienko2016-07-2512-0/+776
| | | | | | | | | | | | | | | | | | | | | | Summary: This check verifies if buffer type and MPI (Message Passing Interface) datatype pairs match. All MPI datatypes defined by the MPI standard (3.1) are verified by this check. User defined typedefs, custom MPI datatypes and null pointer constants are skipped, in the course of verification. Instructions on how to apply the check can be found at: https://github.com/0ax1/MPI-Checker/tree/master/examples Reviewers: alexfh Subscribers: cfe-commits Projects: #clang-tools-extra Patch by Alexander Droste! Differential Revision: https://reviews.llvm.org/D21962 llvm-svn: 276640
* MPI-Checker: move MPIFunctionClassifier.hAlexander Kornienko2016-07-255-9/+10
| | | | | | | | | | | | | | | | Summary: This patch moves the MPIFunctionClassifier header to `clang/include/clang/StaticAnalyzer/Checkers`, in order to make it accessible in other parts of the architecture. Reviewers: dcoughlin, zaks.anna Subscribers: alexfh, cfe-commits Patch by Alexander Droste! Differential Revision: https://reviews.llvm.org/D22671 llvm-svn: 276639
* [Hexagon] Add target feature to generate long callsKrzysztof Parzyszek2016-07-257-29/+146
| | | | llvm-svn: 276638
* [GSoC] Add PolyhedralInfo pass - new interface to polly analysisJohannes Doerfert2016-07-2524-16/+349
| | | | | | | | | | | | | Adding a new pass PolyhedralInfo. This pass will be the interface to Polly. Initially, we will provide the following interface: - #IsParallel(Loop *L) - return a bool depending on whether the loop is parallel or not for the given program order. Patch by Utpal Bora <cs14mtech11017@iith.ac.in> Differential Revision: https://reviews.llvm.org/D21486 llvm-svn: 276637
* GPGPU: Emit data-transfer codeTobias Grosser2016-07-255-33/+153
| | | | | | | Also factor out getArraySize() to avoid code dupliciation and reorder some function arguments to indicate the direction into which data is transferred. llvm-svn: 276636
* GPGPU: Complete code to allocate and free device arraysTobias Grosser2016-07-254-6/+77
| | | | | | | At the beginning of each SCoP, we allocate device arrays for all arrays used on the GPU and we free such arrays after the SCoP has been executed. llvm-svn: 276635
* GPURuntime: Add missing debug outputTobias Grosser2016-07-251-0/+1
| | | | llvm-svn: 276634
* GPURuntime: Fix typo in docuTobias Grosser2016-07-251-1/+1
| | | | llvm-svn: 276633
* GPURuntime: Drop polly_cleanupGPGPUResourcesTobias Grosser2016-07-252-28/+0
| | | | | | | | | | This function is currently unused and won't be used in this form again. Instead of freeing many unrelated items at the same time, we will instead explicitly call free function from the host-IR we generate for each object we want to free. These specific free functions will be added together with the corresponding host-IR generation code. llvm-svn: 276632
* [GSoC] Do not process SCoPs with infeasible runtime contextJohannes Doerfert2016-07-253-2/+76
| | | | | | | | | | | | Do not process SCoPs with infeasible runtime context in the new ScopInfoWrapperPass. Do not compute dependences for such SCoPs in the new DependenceInfoWrapperPass. Patch by Utpal Bora <cs14mtech11017@iith.ac.in> Differential Revision: https://reviews.llvm.org/D22402 llvm-svn: 276631
* [ELF] Test case for correct input section order, when sections are listed in ↵Eugene Leviant2016-07-251-0/+38
| | | | | | linker script llvm-svn: 276630
* [ARM] Improve longMAC codegen testSam Parker2016-07-253-35/+91
| | | | | | | | Added thumb targets and dataflow checks to the longMAC test. Differential Revision: https://reviews.llvm.org/D22684 llvm-svn: 276629
* [mips] Optimize materialization of i64 constantsSimon Dardis2016-07-2514-93/+134
| | | | | | | | | | | | | | | | | Avoid MipsAnalyzeImmediate usage if the constant fits in an 32-bit integer. This allows us to generate the same instructions for the materialization of the same constants regardless the width of their type. Patch by: Vasileios Kalintiris Contributions by: Simon Dardis Reviewers: Daniel Sanders Differential Review: https://reviews.llvm.org/D21689 llvm-svn: 276628
* Apply all necessary tilings and interchangings to get a macro-kernelRoman Gareev2016-07-253-14/+186
| | | | | | | | | | | | | | | | | | | This is the second patch to apply the BLIS matmul optimization pattern on matmul kernels (http://www.cs.utexas.edu/users/flame/pubs/TOMS-BLIS-Analytical.pdf). BLIS implements gemm as three nested loops around a macro-kernel, plus two packing routines. The macro-kernel is implemented in terms of two additional loops around a micro-kernel. The micro-kernel is a loop around a rank-1 (i.e., outer product) update. In this change we create the BLIS macro-kernel by applying a combination of tiling and interchanging. In subsequent changes we will implement the packing transformation. Reviewed-by: Tobias Grosser <tobias@grosser.es> Differential Revision: http://reviews.llvm.org/D21491 llvm-svn: 276627
* [ARM] Small refactor of Thumb2 SMLA instsSam Parker2016-07-251-12/+8
| | | | | | | | | Follow up to r276624. Changes bits 22-20 to be parameters to instruction class. Differential Revision: https://reviews.llvm.org/D22562 llvm-svn: 276626
* [libunwind][ARM] Add support for Thumb1 targetsOliver Stannard2016-07-252-15/+28
| | | | | | | | | | | | | | | | | | | The Thumb1 version of the code for saving and restoring the unwind context has a few bugs which prevent it from working: * It uses the STM instruction without writeback, which is not valid for Thumb1 (It was introduced in Thumb2). * It only saves/restores the low 8 registers, the sp and the lr, so if a program uses r8-r12 they will not be correctly restored when throwing an exception. There aren't currently any Thumb1 build-bots to test this, but we have been successfully running the libc++abi and libc++ test suites on Cortex-M0 models, as well as some other test suites that use C++ exceptions on a downstream version of libunwind with this patch applied. Differential Revision: https://reviews.llvm.org/D22292 llvm-svn: 276625
* [ARM] Enable ISel of SMMLS for ARM and Thumb2Sam Parker2016-07-253-7/+68
| | | | | | | | Use ISelDAGToDAG to recognise the SMMLS instruction pattern. Differential Revision: https://reviews.llvm.org/D22562 llvm-svn: 276624
* GPGPU: initialize GPU context and simplify the corresponding GPURuntime ↵Tobias Grosser2016-07-254-29/+142
| | | | | | | | | interface. There is no need to expose the selected device at the moment. We also pass back pointers as return values, as this simplifies the interface. llvm-svn: 276623
* IslNodeBuilder: Make finalize() virtualTobias Grosser2016-07-253-5/+4
| | | | | | | | This allows the finalization routine of the IslNodeBuilder to be overwritten by derived classes. Being here, we also drop the unnecessary 'Scop' postfix and the unnecessary 'Scop' parameter. llvm-svn: 276622
* GPURuntime: Check for debug-mode early onTobias Grosser2016-07-251-2/+2
| | | | | | | Before this change, the debug statements in polly_initDevice would all be skipped, as debug-mode would only be enabled _after_ they have already been run. llvm-svn: 276621
* [clang-rename] fix typos in testsKirill Bobyrev2016-07-252-12/+6
| | | | | | | TemplateFunctionFindBy{Declaration|Use}.cpp contained typos and therefore were failing. clang-rename passes these tests after typos are fixed. llvm-svn: 276620
* [ELF] - Linkerscript: implemented output section [address] attribute.George Rimar2016-07-254-1/+133
| | | | | | | | | | | | | | | | Output section description in SECTIONS looks like that: section [address] [(type)] : ... { ... } Patch implements support of address atribute. Differential revision: https://reviews.llvm.org/D22689 llvm-svn: 276619
* Update description for CLANG_DEFAULT_CXX_STDLIB and add comment. NFCJonas Hahnfeld2016-07-252-2/+4
| | | | | | | We agreed to call it "platform default" instead of "architecture default". (see D17286) llvm-svn: 276618
* GPURuntime: Drop timing functionality (some leftover II)Tobias Grosser2016-07-252-36/+0
| | | | llvm-svn: 276617
* [NFC] Refactor creation of the BLIS mirco-kernel and improve documentationRoman Gareev2016-07-252-5/+53
| | | | | Reviewed-by: Tobias Grosser <tobias@grosser.es> llvm-svn: 276616
* [AVX512] Add load folding support for the unmasked forms of the FMA ↵Craig Topper2016-07-253-8/+148
| | | | | | instructions. llvm-svn: 276615
* [AVX512] Add some additional patterns so that we can fold broadcast loads in ↵Craig Topper2016-07-252-49/+78
| | | | | | the first argument of an FMADD/FMSUB/FNMADD/FNMSUB/FMADDSUB/FMSUBADD node. Also add patterns to support all combinations of the broadcast input and the preserved input for masked versions. llvm-svn: 276614
* [AVX512] Cleanup FMA operand order in patterns to match the VEX versions and ↵Craig Topper2016-07-254-262/+285
| | | | | | to really be 213, 231, and 132. llvm-svn: 276613
* GPURuntime: Drop timing functionality (some leftover)Tobias Grosser2016-07-251-2/+0
| | | | llvm-svn: 276612
* GPURuntime: Drop timing functionalityTobias Grosser2016-07-252-44/+0
| | | | | | | | This functionality won't be used in the current iteration. Drop it for now to reduce the surface of the library. We can always add it back in when we need it again. llvm-svn: 276611
* Cleanup : Reformat PartialInliner.cpp to have current LLVM style conventionsSean Silva2016-07-251-71/+74
| | | | | | | | | | Modify the variable names and code style to be that of modern LLVM. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22743 llvm-svn: 276610
* Fix : Partial Inliner requires AssumptionCacheTrackerSean Silva2016-07-253-38/+78
| | | | | | | | | | | The public InlineFunction utility assumes that the passed in InlineFunctionInfo has a valid AssumptionCacheTracker. Patch by River Riddle! Differential Revision: https://reviews.llvm.org/D22706 llvm-svn: 276609
* Remove use of C++1z static assert in C++11 testEric Fiselier2016-07-251-8/+8
| | | | llvm-svn: 276608
* Update test to account for r276604David Majnemer2016-07-251-2/+2
| | | | llvm-svn: 276607
* [MSVCToolChain] Guard hardcoded Windows paths with LLVM_ON_WIN32David Majnemer2016-07-251-0/+2
| | | | | | | Paths like C:/foo will never work on UNIX platforms, don't bother implicitly adding them to the search path. llvm-svn: 276606
OpenPOWER on IntegriCloud