summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Extend ifndef to printDebugLoc.Florian Hahn2017-07-311-1/+1
| | | | | | GCC7 did not warn about that, but Clang does. llvm-svn: 309573
* Extend ifdefs to more unused helper functions.Florian Hahn2017-07-312-5/+5
| | | | | | This fixes a buildbot failure with -Werror introduced by r309553 llvm-svn: 309572
* [OpenCL] Enable subgroup extension in testsJoey Gouly2017-07-312-2/+2
| | | | | | | This fixes the test, so that it can be run on different hosts that may have different OpenCL extensions enabled. llvm-svn: 309571
* [DebugInfo] Don't overwrite DWARFUnit fields if the CU DIE doesn't have them.Benjamin Kramer2017-07-311-2/+6
| | | | | | | | | | DIEs are lazily deserialized so it's possible that the DWO CU is created before the DIE is parsed. DWO shares .debug_addr and .debug_ranges with the object file so overwriting the offset with 0 will make the CU unusable. No test case because I couldn't get clang to emit a non-zero range base. llvm-svn: 309570
* Fix -Wshadow false positives with function-local classes.Alexander Kornienko2017-07-312-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Fixes http://llvm.org/PR33947. https://godbolt.org/g/54XRMT void f(int a) { struct A { void g(int a) {} A() { int a; } }; } 3 : <source>:3:16: warning: declaration shadows a local variable [-Wshadow] void g(int a) {} ^ 1 : <source>:1:12: note: previous declaration is here void f(int a) { ^ 4 : <source>:4:15: warning: declaration shadows a local variable [-Wshadow] A() { int a; } ^ 1 : <source>:1:12: note: previous declaration is here void f(int a) { ^ 2 warnings generated. The local variable `a` of the function `f` can't be accessed from a method of the function-local class A, thus no shadowing occurs and no diagnostic is needed. Reviewers: rnk, rsmith, arphaman, Quuxplusone Reviewed By: rnk, Quuxplusone Subscribers: Quuxplusone, cfe-commits Differential Revision: https://reviews.llvm.org/D35941 llvm-svn: 309569
* [docker] Fix unmatched quote problem in here-document on older versions of bashDon Hinton2017-07-312-6/+2
| | | | | | | | | | | | | | | | Summary: When outputing usage, emit here-document directly instead of saving in a variable first -- avoids problem with bash 3.2.57 where an unmatched ' in the here-document results in the following error: ./build_docker_image.sh: line 135: unexpected EOF while looking for matching `'' bash --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16) Differential Revision: https://reviews.llvm.org/D36064 llvm-svn: 309568
* [OpenCL] Add extension Sema check for subgroup builtinsJoey Gouly2017-07-314-2/+29
| | | | | | Check the subgroup extension is enabled, before doing other Sema checks. llvm-svn: 309567
* [SLP] Initial rework for min/max horizontal reduction vectorization, NFC.Alexey Bataev2017-07-312-88/+227
| | | | | | | | | | | | Summary: All getReductionCost() functions are renamed to getArithmeticReductionCost() + added basic infrastructure to handle non-binary reduction operations. Reviewers: spatel, mzolotukhin, Ayal, mkuper, gilr, hfinkel Subscribers: RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D29402 llvm-svn: 309566
* [X86] Extending a test cases for LEA factorization.Simon Pilgrim2017-07-311-0/+134
| | | | | | | | Submitted on the behalf of Jatin Bhateja Differential Revision: https://reviews.llvm.org/D36048 llvm-svn: 309565
* Fix release notes indentation from r309562Alex Lorenz2017-07-311-8/+11
| | | | | | The additions in r309562 triggered a docs buildbot failure. llvm-svn: 309564
* [Cost] Rename getReductionCost() to getArithmeticReductionCost(), NFC.Alexey Bataev2017-07-318-19/+24
| | | | llvm-svn: 309563
* Document '-Wpragma-pack' in the release notesAlex Lorenz2017-07-311-1/+10
| | | | llvm-svn: 309562
* [SelectionDAG][mips] Fix PR33883Simon Dardis2017-07-312-15/+36
| | | | | | | | | | | | | | | PR33883 shows that calls to intrinsic functions should not have their vector arguments or returns subject to ABI changes required by the target. This resolves PR33883. Thanks to Alex Crichton for reporting the issue! Reviewers: zoran.jovanovic, atanasyan Differential Revision: https://reviews.llvm.org/D35765 llvm-svn: 309561
* [GPGPU] Add support for NVIDIA libdeviceTobias Grosser2017-07-315-12/+182
| | | | | | | | | | | | | | | | | | | | | Summary: This allows us to map functions such as exp, expf, expl, for which no LLVM intrinsics exist. Instead, we link to NVIDIA's libdevice which provides high-performance implementations of a wide range of (math) functions. We currently link only a small subset, the exp, cos and copysign functions. Other functions will be enabled as needed. Reviewers: bollu, singam-sanjay Reviewed By: bollu Subscribers: tstellar, tra, nemanjai, pollydev, mgorny, llvm-commits, kbarton Tags: #polly Differential Revision: https://reviews.llvm.org/D35703 llvm-svn: 309560
* -Wpragma-pack: add an additional note and fixit when warningAlex Lorenz2017-07-315-3/+26
| | | | | | | | | about unterminated push directives that are followed by a reset ('#pragma pack()') This has been suggested by Hans Wennborg. llvm-svn: 309559
* [LV] Avoid redundant operations manipulating masksAyal Zaks2017-07-314-70/+55
| | | | | | | | | | | | | | | | The Loop Vectorizer generates redundant operations when manipulating masks: AND with true, OR with false, compare equal to true. Instead of relying on a subsequent pass to clean them up, this patch avoids generating them. Use null (no-mask) to represent all-one full masks, instead of a constant all-one vector, following the convention of masked gathers and scatters. Preparing for a follow-up VPlan patch in which these mask manipulating operations are modeled using recipes. Differential Revision: https://reviews.llvm.org/D35725 llvm-svn: 309558
* [CMake][Modules] libclang: Ignore _CINDEX_LIB_ and CLANG_TOOL_EXTRA_BUILD ↵NAKAMURA Takumi2017-07-311-0/+9
| | | | | | | | | | | | | for -fmodules. CLANG_TOOL_EXTRA_BUILD doesn't affect headers. _CINDEX_LIB_ is defined when the target is SHARED. On Win32, it affects clang-c/Platform.h and it shouldn't be ignored. This is part of https://reviews.llvm.org/D35559 llvm-svn: 309557
* Revert "Remove Debug metadata from copied instruction to prevent Module ↵Tobias Grosser2017-07-312-112/+0
| | | | | | | | | | | verification failure" This reverts commit r309490 as it triggers on our AOSP buildbut error messages of the form: inlinable function call in a function with debug info must have a !dbg location llvm-svn: 309556
* [llvm-dlltool] Write correct weak externalsMartin Storsjo2017-07-312-21/+10
| | | | | | | | | | | | | Previously, the created object files for the import library were broken. Write the symbol table before the string table. Simplify the code by using a separate variable Prefix instead of duplicating a few lines. Also update the coff-weak-exports to actually check that the generated weak symbols can be found as intended. Differential Revision: https://reviews.llvm.org/D36065 llvm-svn: 309555
* Add support for base address entries in the .debug_ranges sectionTamas Berghammer2017-07-311-18/+19
| | | | | | | | | Summary: Clang recently started to emit base address entries into the .debug_ranges section to reduce the number of relocations needed. Lets make sure LLDB can read them. llvm-svn: 309554
* Guard print() functions only used by dump() functions.Florian Hahn2017-07-3110-7/+23
| | | | | | | | | | | | | | | | | | | Summary: Since r293359, most dump() function are only defined when `!defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)` holds. print() functions only used by dump() functions are now unused in release builds, generating lots of warnings. This patch only defines some print() functions if they are used. Reviewers: MatzeB Reviewed By: MatzeB Subscribers: arsenm, mzolotukhin, nhaehnle, llvm-commits Differential Revision: https://reviews.llvm.org/D35949 llvm-svn: 309553
* [Modules] llvm-config: Exclude CMAKE_CFG_INTDIR. It isn't used in headers.NAKAMURA Takumi2017-07-311-0/+6
| | | | | | This is part of https://reviews.llvm.org/D35559 llvm-svn: 309552
* libcxxabi: Suppress LLVM_ENABLE_MODULESNAKAMURA Takumi2017-07-311-0/+6
| | | | | | Differential Revision: https://reviews.llvm.org/D35542 llvm-svn: 309551
* [clangd] Add ':' to completion trigger characters.Ilya Biryukov2017-07-312-3/+3
| | | | | | | | | | | | | | | | Summary: Without it we don't get completion requests from VSCode after nested name qualifiers (e.g. after 'std::'). Reviewers: krasimir, bkramer Reviewed By: krasimir Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D35986 llvm-svn: 309550
* [Support/GlobPattern] - Do not crash when pattern has characters with int ↵George Rimar2017-07-312-7/+19
| | | | | | | | | | | | | | | value < 0. Found it during work on LLD, it would crash on following linker script: SECTIONS { .foo : { *("*®") } } That happens because ® has int value -82. And chars are used as array index in code, and are signed by default. Differential revision: https://reviews.llvm.org/D35891 llvm-svn: 309549
* Added `applyAtomicChanges` function.Eric Liu2017-07-314-4/+637
| | | | | | | | | | | | | | | | | | This re-commits r298913. o See thread http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20170327/189084.html o Tested with -DLLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY=0. Summary: ... which applies a set of `AtomicChange`s on code. Reviewers: klimek, djasper Reviewed By: djasper Subscribers: arphaman, mgorny, chapuni, cfe-commits Differential Revision: https://reviews.llvm.org/D30777 llvm-svn: 309548
* [LoopInterchange] Do not interchange loops with function calls.Florian Hahn2017-07-314-3/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Without any information about the called function, we cannot be sure that it is safe to interchange loops which contain function calls. For example there could be dependences that prevent interchanging between accesses in the called function and the loops. Even functions without any parameters could cause problems, as they could access memory using global pointers. For now, I think it is only safe to interchange loops with calls marked as readnone. With this patch, the LLVM test suite passes with `-O3 -mllvm -enable-loopinterchange` and LoopInterchangeProfitability::isProfitable returning true for all loops. check-llvm and check-clang also pass when bootstrapped in a similar fashion, although only 3 loops got interchanged. Reviewers: karthikthecool, blitz.opensource, hfinkel, mcrosier, mkuper Reviewed By: mcrosier Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D35489 llvm-svn: 309547
* [X86][AVX512] Add masked MOVS[S|D] patternsGuy Blank2017-07-313-6/+16
| | | | | | | | | | | Added patterns to recognize AND 1 on the mask of a scalar masked move is not needed since only the lower bit is relevant for the instruction. Differential Revision: https://reviews.llvm.org/D35897 llvm-svn: 309546
* [coroutines] Evaluate the operand of void `co_return` expressions.Eric Fiselier2017-07-312-0/+21
| | | | | | | | | | | | | | | | | Summary: Previously Clang incorrectly ignored the expression of a void `co_return`. This patch addresses that bug. I'm not quite sure if I got the code-gen right, but this patch is at least a start. Reviewers: rsmith, GorNishanov Reviewed By: rsmith, GorNishanov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D36070 llvm-svn: 309545
* [SLP]: Add test to resurrect the jumbled load patch. This test has multiple usesMohammad Shahid2017-07-311-0/+48
| | | | | | | of memory loads by different user Change-Id: I40b5ba8b810265440f3e55efca77c4b41ca98fa4 llvm-svn: 309544
* [XRay][compiler-rt] Fix test to not be too strict with output order.Dean Michael Berris2017-07-311-1/+1
| | | | | | Follow-up to D35789. llvm-svn: 309543
* [asan] Move shadow memory setup into its own fileVitaly Buka2017-07-314-125/+150
| | | | | | | | | | | | | | Submitted on behalf of Roland McGrath. Reviewers: vitalybuka, alekseyshl, kcc Subscribers: kubamracek, mgorny, phosek, filcab, llvm-commits Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D36037 llvm-svn: 309542
* [PowerPC] Change method names; NFCHiroshi Inoue2017-07-311-24/+25
| | | | | | | | Changed method names based on the discussion in https://reviews.llvm.org/D34986: getInt64 -> selectI64Imm, getInt64Count -> selectI64ImmInstrCount. llvm-svn: 309541
* [XRay][compiler-rt] Fix typo for REQUIRES.Dean Michael Berris2017-07-311-1/+1
| | | | | | Follow-up on D35789. llvm-svn: 309540
* [sanitizer_common] Add SANITIZER_FUCHSIAVitaly Buka2017-07-311-1/+7
| | | | | | | | | | | | | | | | | | Summary: More changes to follow will add the Fuchsia port. Submitted on behalf of Roland McGrath. Reviewers: vitalybuka, alekseyshl, kcc Reviewed By: vitalybuka Subscribers: kubamracek, llvm-commits, phosek, filcab Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D36027 llvm-svn: 309539
* [XRay][compiler-rt] Require build-in-tree and x86_64-linux.Dean Michael Berris2017-07-311-0/+4
| | | | | | | | | The quiet-start.cc test currently fails for arm (and potentially other platforms). This change limits it to x86_64-linux. Follow-up to D35789. llvm-svn: 309538
* [builtins] Fix mingw-w64 cross compilationMartin Storsjo2017-07-311-1/+1
| | | | | | | | | Lowercase the Windows.h include in enable_execute_stack.c, just as in emutls.c in SVN r302340. Differential Revision: https://reviews.llvm.org/D36066 llvm-svn: 309537
* [sanitizer_common] Rename SI_NOT_WINDOWS to SI_POSIXVitaly Buka2017-07-312-88/+91
| | | | | | | | | | | | | | | | | | | | | Summary: New systems might be neither Windows nor POSIX. The SI_NOT_WINDOWS macro in sanitizer_platform_interceptors.h was already effectively the same as SI_POSIX, so just use SI_POSIX instead. Submitted on behalf of Roland McGrath. Reviewers: vitalybuka, alekseyshl, kcc Reviewed By: vitalybuka Subscribers: phosek, filcab, llvm-commits, kubamracek Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D36038 llvm-svn: 309536
* [X86] Add pattern to use bzhi for 64-bit 'and' with a mask when there is a ↵Craig Topper2017-07-312-0/+16
| | | | | | | | load involved. We already had a pattern without load, but with a load we were falling back to a regular 'and' due to pattern complexity priority. llvm-svn: 309535
* [XRay][compiler-rt] Do not print the warning when the binary is not XRay ↵Dean Michael Berris2017-07-313-1/+29
| | | | | | | | | | | | | | | | | instrumented. Summary: Currently when the XRay runtime is linked into a binary that doesn't have the instrumentation map, we print a warning unconditionally. This change attempts to make this behaviour more quiet. Reviewers: kpw, pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35789 llvm-svn: 309534
* [IslNodeBuilder] Remove unused instructionTobias Grosser2017-07-311-1/+0
| | | | | Suggested-by: Maximilian Falkenstein <falkensm@student.ethz.ch> llvm-svn: 309533
* gold/CMakeLists.txt: Prune (-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64).NAKAMURA Takumi2017-07-311-4/+0
| | | | | | | They are handled in HandleLLVMOptions.cmake for -m32. They are not required for -m64. llvm-svn: 309532
* Prune trailing linefeed at eof.NAKAMURA Takumi2017-07-311-1/+0
| | | | llvm-svn: 309531
* [Sema] Fix operator lookup to consider local extern declarations.Eric Fiselier2017-07-312-1/+21
| | | | | | | | | | | | | | | | | | | | | | Summary: Previously Clang was not considering operator declarations that occur at function scope. This is incorrect according to [over.match.oper]p3 > The set of non-member candidates is the result of the unqualified lookup of operator@ in the context of the expression according to the usual rules for name lookup in unqualified function calls. This patch changes operator name lookup to consider block scope declarations. This patch fixes PR27027. Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D35297 llvm-svn: 309530
* DebugInfo: Fix r309526, ensure resetting base address selection entries are usedDavid Blaikie2017-07-312-22/+55
| | | | | | | Missed the resetting base address selections when going from a base address version to zero base address for non-base-addressed entries. llvm-svn: 309529
* Mark LWG 2942 as completeEric Fiselier2017-07-303-5/+3
| | | | llvm-svn: 309528
* Mark LWG 2961 as completeEric Fiselier2017-07-301-1/+1
| | | | llvm-svn: 309527
* DebugInfo: Use base address selection entries in debug_ranges to reduce ↵David Blaikie2017-07-302-10/+102
| | | | | | | | | | | | | | | | | | | | relocations (from comments in the test) Group ranges in a range list that apply to the same section and use a base address selection entry to reduce the number of relocations to one reloc per section per range list. DWARF5 debug_rnglist will be more efficient than this in terms of relocations, but it's still better than one reloc per entry in a range list. This is an object/executable size tradeoff - shrinking objects, but growing the linked executable. In one large binary tested, total object size (not just debug info) shrank by 16%, entirely relocation entries. Linked executable grew by 4%. This was with compressed debug info in the objects, uncompressed in the linked executable. Without compression in the objects, the win would be smaller (the growth of debug_ranges itself would be more significant). llvm-svn: 309526
* test: add an additional cfi_return_column testSaleem Abdulrasool2017-07-301-0/+8
| | | | | | | Ensure that we still coalesce identical CIEs across FDEs even with cfi_return_column alterations. llvm-svn: 309525
* test: make the test clearer (NFC)Saleem Abdulrasool2017-07-301-4/+8
| | | | | | | | Use `llvm-objdump -dwarf=frames` to dump the .eh_frame to validate the output textually rather than compare the binary output. This makes it easier to see what is being checked. NFC. llvm-svn: 309524
OpenPOWER on IntegriCloud