summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[Driver] Compute effective target triples once per job (NFCI)"Vedant Kumar2016-07-2711-354/+192
| | | | | | | This reverts commit r275895 in order to address some post-commit review feedback from Eric Christopher (see: the list thread for r275895). llvm-svn: 276936
* [lld][MachO] Re-apply r276921 with fix - initialize strings for debug stringLang Hames2016-07-2710-26/+1112
| | | | | | copies. llvm-svn: 276935
* [OpenMP] Add support to map member expressions with references to pointers.Samuel Antao2016-07-272-3/+212
| | | | | | | | | | | | Summary: This patch add support to map pointers through references in class members. Although a reference does not have storage that a user can access, it still has to be mapped in order to get the deep copy right and the dereferencing code work properly. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev Subscribers: caomhin, cfe-commits Differential Revision: https://reviews.llvm.org/D22787 llvm-svn: 276934
* [OpenMP] Add support for mapping array sections through pointer references.Samuel Antao2016-07-273-13/+114
| | | | | | | | | | | | | | | Summary: This patch fixes a bug in the map of array sections whose base is a reference to a pointer. The existing mapping support was not prepared to deal with it, causing the compiler to crash. Mapping a reference to a pointer enjoys the same characteristics of a regular pointer, i.e., it is passed by value. Therefore, the reference has to be materialized in the target region. Reviewers: hfinkel, carlo.bertolli, kkwli0, ABataev Subscribers: caomhin, cfe-commits Differential Revision: https://reviews.llvm.org/D22690 llvm-svn: 276933
* Basic/Targets.cpp: Reformat aarch64 CPU list.Matthias Braun2016-07-271-8/+11
| | | | | | | Having 1 entry per line and an alphabetical order is clearer and reduces the risk of invalid merges. llvm-svn: 276931
* test/Frontend: Add a test for aarch64 target CPU names.Matthias Braun2016-07-271-0/+14
| | | | | | | Nothing else checked the target cpu names for aarch64 yet. Add a test in the spirit of x86-target-cpu.c. llvm-svn: 276930
* Refactor how include paths are appended to the command arguments.Samuel Antao2016-07-272-57/+39
| | | | | | | | | | | | | | | Summary: This patch aims at removing redundancy in the way include paths for the regular and offloading toolchains are appended to the arguments list in the clang tool. This was suggested by @rsmith in response to r275931. Reviewers: rsmith, tra Subscribers: rsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D22518 llvm-svn: 276929
* [lld][MachO] Temporarily revert r276921 - it's causing bot-failures on Linux.Lang Hames2016-07-2710-1111/+26
| | | | llvm-svn: 276928
* [CUDA] Align kernel launch args correctly when the LLVM type's alignment is ↵Justin Lebar2016-07-273-25/+58
| | | | | | | | | | | | | | | | | | | | | | | different from the clang type's alignment. Summary: Before this patch, we computed the offsets in memory of args passed to GPU kernel functions by throwing all of the args into an LLVM struct. clang emits packed llvm structs basically whenever it feels like it, and packed structs have alignment 1. So we cannot rely on the llvm type's alignment matching the C++ type's alignment. This patch fixes our codegen so we always respect the clang types' alignments. Reviewers: rnk Subscribers: cfe-commits, tra Differential Revision: https://reviews.llvm.org/D22879 llvm-svn: 276927
* [LVI] Use DenseMap::find_as in LazyValueInfo.Justin Lebar2016-07-271-15/+29
| | | | | | | | | | | | | | | | | | | | | | Summary: This lets us avoid creating and destroying a CallbackVH every time we check the cache. This is good for a 2% e2e speedup when compiling one of the large Eigen tests at -O3. FTR, I tried making the ValueCache hashtable one-level -- i.e., mapping a pair (Value*, BasicBlock*) to a lattice value, and that didn't seem to provide any additional improvement. Saving a word in LVILatticeVal by merging the Tag and Val fields also didn't yield a speedup. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21951 llvm-svn: 276926
* Don't crash when generating code for __attribute__((naked)) member functions.Justin Lebar2016-07-273-0/+21
| | | | | | | | | | | | | | Summary: Previously this crashed inside EmitThisParam(). There should be no prelude for naked functions, so just skip the whole thing. Reviewers: majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22715 llvm-svn: 276925
* [llvm-cov] Add a debug mode for source range highlighting (in html)Vedant Kumar2016-07-272-28/+53
| | | | | | | llvm-cov's `-dump' option now emits information which helps debug source range highlighting in html mode. llvm-svn: 276924
* [LSV] Don't assume that bitcast ops are Instructions.Justin Lebar2016-07-272-9/+20
| | | | | | | | | | | | | | Summary: When we ask the builder to create a bitcast on a constant, we get back a constant, not an instruction. Reviewers: asbirlea Subscribers: jholewinski, mzolotukhin, llvm-commits, arsenm Differential Revision: https://reviews.llvm.org/D22878 llvm-svn: 276922
* [lld][MachO] Add debug info support for MachO.Lang Hames2016-07-2710-26/+1111
| | | | | | | | | This patch causes LLD to build stabs debugging symbols for files containing DWARF debug info, and to propagate existing stabs symbols for object files built using '-r' mode. This enables debugging of binaries generated by LLD from MachO objects. llvm-svn: 276921
* [Hexagon] Find speculative loop preheader in hardware loop generationKrzysztof Parzyszek2016-07-272-10/+101
| | | | | | | | Before adding a new preheader block, check if there is a candidate block where the loop setup could be placed speculatively. This will be off by default. llvm-svn: 276919
* [X86] Factor out another piece of the SAD combine. NFCI.Michael Kuperstein2016-07-271-75/+83
| | | | llvm-svn: 276918
* [Hexagon] Add option to bisect spill slot optimizationKrzysztof Parzyszek2016-07-271-2/+17
| | | | llvm-svn: 276917
* [Hexagon] Do not optimize volatile stack spill slotsKrzysztof Parzyszek2016-07-272-22/+40
| | | | llvm-svn: 276916
* Add target triple in testNirav Dave2016-07-271-2/+2
| | | | llvm-svn: 276915
* Fixed "void SBWatchpoint::SetEnabled (bool enabled)" to work properly and ↵Greg Clayton2016-07-272-6/+12
| | | | | | | | | added a test for it. https://llvm.org/bugs/show_bug.cgi?id=28729 <rdar://problem/27575225> llvm-svn: 276914
* build_llvm_package.bat: try tests three timesHans Wennborg2016-07-271-8/+8
| | | | | | | Sometimes they're flaky on Windows, and starting the whole thing over is painful. llvm-svn: 276913
* test commitMatt Masten2016-07-271-0/+1
| | | | llvm-svn: 276912
* test commitMatt Masten2016-07-271-0/+1
| | | | llvm-svn: 276911
* Codegen: IfConversion: Factor out a function to count dup instrs.Kyle Butt2016-07-271-40/+64
| | | | | | | | Factor out countDuplicatedInstructions to Count duplicated instructions at the beginning and end of a diamond pattern. This is in prep for adding support for diamonds that need to be tail-merged. llvm-svn: 276910
* Codegen: IfConversion: add const qualifier. NFCKyle Butt2016-07-271-2/+2
| | | | | | Add a const qualifier to ReverseBranchCondition. llvm-svn: 276909
* Revert "[llvm-cov] Minor aesthetic improvements for html reports"Vedant Kumar2016-07-271-9/+7
| | | | | | This reverts commit r276906. It breaks tests. llvm-svn: 276908
* Add flags to toggle preservation of assembly commentsNirav Dave2016-07-276-0/+22
| | | | | | | | | | | | Summary: Add -fpreserve-as-comments and -fno-preserve-as-comments. Reviewers: echristo, rnk Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D22883 llvm-svn: 276907
* [llvm-cov] Minor aesthetic improvements for html reportsVedant Kumar2016-07-271-7/+9
| | | | | | | This fixes the highlighting for lines without any coverage segments. I don't have a neat way of testing this yet, but am working on it. llvm-svn: 276906
* Initialize PreserveAsmComments in MCTargetOptionsNirav Dave2016-07-271-1/+1
| | | | llvm-svn: 276905
* Adjust coercion of aggregates on RenderScriptPirama Arumuga Nainar2016-07-275-1/+171
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In RenderScript, the size of the argument or return value emitted in the IR is expected to be the same as the size of corresponding qualified type. For ARM and AArch64, the coercion performed by Clang can change the parameter or return value to a type whose size is different (usually larger) than the original aggregate type. Specifically, this can happen in the following cases: - Aggregate parameters of size <= 64 bytes and return values smaller than 4 bytes on ARM - Aggregate parameters and return values smaller than bytes on AArch64 This patch coerces the cases above to an integer array that is the same size and alignment as the original aggregate. A new field is added to TargetInfo to detect a RenderScript target and limit this coercion just to that case. Tests added to test/CodeGen/renderscript.c Reviewers: rsmith Subscribers: aemerson, srhines, llvm-commits Differential Revision: https://reviews.llvm.org/D22822 llvm-svn: 276904
* [Hexagon] Handle extended versions of restore routinesKrzysztof Parzyszek2016-07-271-2/+11
| | | | llvm-svn: 276903
* CodeGen: Make iterator-to-pointer conversion explicit, NFCDuncan P. N. Exon Smith2016-07-271-2/+2
| | | | | | | | | | | | | | | Remove the implicit conversion from MachineInstrBundleIterator to MachineInstr*, leaving behind an explicit conversion. I *think* this is the last ilist_iterator-related implicit conversion to ilist_node subclass. If I'm right, I can finally dig in and fix the UB in ilist that these conversions were relying on. Note that the implicit users of this conversion have already been removed. If you have out-of-tree code that doesn't update, you might be able to buy some time by temporarily reverting this commit. llvm-svn: 276902
* Fix the build for libstdc++ 4.7David Majnemer2016-07-271-4/+3
| | | | | | libstdc++ 4.7 doesn't have emplace. Use std::map::insert instead. llvm-svn: 276901
* [Sema] Teach getCurrentThisType to reconize lambda in in-class initializerErik Pilkington2016-07-272-24/+44
| | | | | | | | Fixes PR27994, a crash on valid. Differential revision: https://reviews.llvm.org/D21145 llvm-svn: 276900
* XCore: Avoid implicit iterator conversions, NFCDuncan P. N. Exon Smith2016-07-273-14/+13
| | | | | | | Avoid implicit conversions from MachineInstrBundleIterator to MachineInstr*, mainly by preferring MachineInstr& over MachineInstr*. llvm-svn: 276899
* Revert EH-specific checks in BranchFolding that were causing blow ups in ↵Andrew Kaylor2016-07-273-35/+28
| | | | | | | | compile time. Differential Revision: https://reviews.llvm.org/D22839 llvm-svn: 276898
* GlobalISel: support zero-sized allocasTim Northover2016-07-272-0/+6
| | | | | | | All allocas must be at least 1 byte at the MachineIR level so we allocate just one byte. llvm-svn: 276897
* Update Clang Parser test error message to match new parser errorsNirav Dave2016-07-271-1/+1
| | | | llvm-svn: 276896
* [MC][X86] Fix Intel Operand assembly parsing for .set idsNirav Dave2016-07-273-115/+97
| | | | | | | | | | | | | Fix intel syntax special case identifier operands that refer to a constant (e.g. .set <ID> n) to be interpreted as immediate not memory in parsing. Reviewers: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22585 llvm-svn: 276895
* [DSE] Fix bug in updating MadeChange flagJun Bum Lim2016-07-271-2/+2
| | | | | | | | | | | | Summary: The MadeChange flag should be ORed to keep the previous result. Reviewers: mcrosier Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D22873 llvm-svn: 276894
* UsersManual.rst: update clang-cl option listHans Wennborg2016-07-271-1/+17
| | | | llvm-svn: 276891
* Fix unnecessary default switch warningSimon Pilgrim2016-07-271-1/+1
| | | | llvm-svn: 276889
* Update cxx_dr_Status after 3.9 branchHans Wennborg2016-07-272-11/+11
| | | | llvm-svn: 276887
* [Hexagon] Add saved callee-saved registers as live-in in non-wrapped blocksKrzysztof Parzyszek2016-07-272-8/+28
| | | | | | | | | | | | | The callee-saved registers that are saved in a function are not pristine, and so they can be defined and used. In case of shrink-wrapping though, there are blocks that are outside of the save/restore range, and in those blocks the saved registers must be treated as pristine. To avoid any uses of these registers, add them as live-in in all those blocks. This was already done for blocks reaching function exits after restore, add code that does the same for blocks reached from the function entry before save. llvm-svn: 276886
* [compiler-rt] Fix warnings in interception codeEtienne Bergeron2016-07-274-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch is re-introducing the code to fix the dynamic hooking on windows and to fix a compiler warning on Apple. Related patches: * https://reviews.llvm.org/D22641 * https://reviews.llvm.org/D22610 * https://reviews.llvm.org/rL276311 * https://reviews.llvm.org/rL276490 Both architecture are using different techniques to hook on library functions (memchr, strcpy,...). On Apple, the function is not dynamically hooked and the symbol always points to a valid function (i.e. can't be null). The REAL macro returns the symbol. On windows, the function is dynamically patch and the REAL(...) function may or may not be null. It depend on whether or not the function was hooked correctly. Also, on windows memcpy and memmove are the same. ``` #if !defined(__APPLE__) [...] # define REAL(x) __interception::PTR_TO_REAL(x) # define ASSIGN_REAL(dst, src) REAL(dst) = REAL(src) [...] #else // __APPLE__ [...] # define REAL(x) x # define ASSIGN_REAL(x, y) [...] #endif // __APPLE__ Reviewers: rnk Subscribers: kcc, hans, kubabrecka, llvm-commits, bruno, chrisha Differential Revision: https://reviews.llvm.org/D22758 llvm-svn: 276885
* Make bugpoint transform conditional jumps into unconditional jumps.Daniel Berlin2016-07-271-0/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add a pass to bugpoint to make it transform conditional jumps into unconditional jumps. Often, bugpoint generates output that has large numbers of br undef jumps, where one side is dead. What is happening is two fold: 1. It never tries to just pick a direction for the jump, and just see what happens <<<< this patch 2. SimplifyCFG no longer is a good match for bugpoint's usecase. It does too much. Even things in SimplifyCFG, like removeUnreachableBlocks, go to great lengths to transform undefined behavior into blocks and kill large parts of the CFG. This is great for regular code, not so much for bugpoint, which often generates UB on purpose (store undef is a great example). <<<< a followup patch that is coming, to move simplifycfg into a separate reduction pass, and move the existing reduceCrashingBlocks pass to use simpleSimplifyCFG. Both of these patches significantly reduce the size and complexity of bugpoint generated testcases. Reviewers: chandlerc, majnemer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22841 llvm-svn: 276884
* Remove MCAsmInfo.h include from TargetOptions.hReid Kleckner2016-07-277-12/+13
| | | | | | | | | TargetOptions wants the ExceptionHandling enum. Move that to MCTargetOptions.h to avoid transitively including Dwarf.h everywhere in clang. Now you can add a DWARF tag without a full rebuild of clang semantic analysis. llvm-svn: 276883
* [X86][SSE] Updated test so that both are applying the post-multiplySimon Pilgrim2016-07-271-11/+14
| | | | | | This is to ensure that there are no diffs other than due to buildvector/legalization llvm-svn: 276882
* [compiler-rt] Activate interception unittestsEtienne Bergeron2016-07-273-0/+33
| | | | | | | | | | | | | | Summary: The unittests recently added were not running when executing 'check-all'. Tests are stable on every archictetures and we can now turn them on. Reviewers: rnk Subscribers: llvm-commits, wang0109, chrisha Differential Revision: https://reviews.llvm.org/D22695 llvm-svn: 276881
* Typo fix. NFCDiana Picus2016-07-271-1/+1
| | | | llvm-svn: 276879
OpenPOWER on IntegriCloud