summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* builtins: remove an errant ':'Saleem Abdulrasool2017-01-261-1/+1
| | | | | | Thanks to Dave Lee for pointing this out! llvm-svn: 293120
* LowerTypeTests: Ignore external globals with type metadata.Peter Collingbourne2017-01-262-3/+20
| | | | | | Thanks to Davide Italiano for finding the problem and providing a test case. llvm-svn: 293119
* [libFuzzer] don't call GetPreviousInstructionPc on the hot path -- only when ↵Kostya Serebryany2017-01-261-18/+22
| | | | | | dumping the PCs llvm-svn: 293117
* [APFloat] Fix comments. NFC.Tim Shen2017-01-262-45/+49
| | | | | | | | | | | | Summary: Fix comments in response to jlebar's comments in D27872. Reviewers: jlebar Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29109 llvm-svn: 293116
* [ValueTracking] Implement SignBitMustBeZero correctly for sqrt.Justin Lebar2017-01-262-4/+66
| | | | | | | | | | | | | | Summary: Previously we assumed that the result of sqrt(x) always had 0 as its sign bit. But sqrt(-0) == -0. Reviewers: hfinkel, efriedma, sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D28928 llvm-svn: 293115
* Change the test added in r293099 so it does not have the string "llvm-nm" to fixKevin Enderby2017-01-251-1/+1
| | | | | | the clang-x86-windows-msvc2015 bot as the name is "llvm-nm.EXE" in that case. llvm-svn: 293114
* [llc] Add -pass-remarks-with-hotnessAdam Nemet2017-01-252-7/+24
| | | | | | Analogous to the code in opt, this enables hotness in opt-remarks. llvm-svn: 293113
* [NewGVN] Simplify folding a lambda used only once. NFCI.Davide Italiano2017-01-251-5/+3
| | | | llvm-svn: 293112
* Fix test case committed in r293106 so that it passes on targets whoseAkira Hatanaka2017-01-251-1/+4
| | | | | | pointers are 4-bytes instead of 8-bytes. llvm-svn: 293111
* New OptimizationRemarkEmitter pass for MIRAdam Nemet2017-01-2513-51/+530
| | | | | | | | | | | | | | | | | This allows MIR passes to emit optimization remarks with the same level of functionality that is available to IR passes. It also hooks up the greedy register allocator to report spills. This allows for interesting use cases like increasing interleaving on a loop until spilling of registers is observed. I still need to experiment whether reporting every spill scales but this demonstrates for now that the functionality works from llc using -pass-remarks*=<pass>. Differential Revision: https://reviews.llvm.org/D29004 llvm-svn: 293110
* [OptDiag] Split code region out of DiagnosticInfoOptimizationBaseAdam Nemet2017-01-254-89/+112
| | | | | | | | | | | | | | | | | | Code region is the only part of this class that is IR-specific. Code region is moved down in the inheritance tree to a new derived class, called DiagnosticInfoIROptimization. All the existing remarks are derived from this new class now. This allows the new MIR pass-remark classes to be derived from DiagnosticInfoOptimizationBase. Also because we keep the name DiagnosticInfoOptimizationBase, the clang parts don't need any adjustment. Differential Revision: https://reviews.llvm.org/D29003 llvm-svn: 293109
* Remove the return type from the check string in test case.Akira Hatanaka2017-01-251-1/+1
| | | | | | Bots were failing because some targets emit signext before i32. llvm-svn: 293108
* COFF: add test for /INCLUDE directives specified in bitcodeBob Haarman2017-01-251-0/+24
| | | | | | | | | | | | Summary: MSVC allows linker options to be specified in source code. One of these is the /INCLUDE directive, which specifies that a symbol must be added to the symbol table, even if it otherwise wouldn't be. Existing tests cover the case where the linker is given an object file with an /INCLUDE directive, but we also need to cover the case where /INCLUDE is specified in a bitcode file (as would happen when using LTO). This new test covers that case. Reviewers: pcc, ruiu Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D29096 llvm-svn: 293107
* [CodeGen] Suppress emission of lifetime markers if a label has been seenAkira Hatanaka2017-01-253-11/+51
| | | | | | | | | | | | | | | | | | | | | | | | | in the current lexical scope. clang currently emits the lifetime.start marker of a variable when the variable comes into scope even though a variable's lifetime starts at the entry of the block with which it is associated, according to the C standard. This normally doesn't cause any problems, but in the rare case where a goto jumps backwards past the variable declaration to an earlier point in the block (see the test case added to lifetime2.c), it can cause mis-compilation. To prevent such mis-compiles, this commit conservatively disables emitting lifetime variables when a label has been seen in the current block. This problem was discussed on cfe-dev here: http://lists.llvm.org/pipermail/cfe-dev/2016-July/050066.html rdar://problem/30153946 Differential Revision: https://reviews.llvm.org/D27680 llvm-svn: 293106
* Fix for r293104, which renamed a directory.Adrian McCarthy2017-01-252-3/+3
| | | | llvm-svn: 293105
* NFC: Rename (PDB) RawSession to NativeSessionAdrian McCarthy2017-01-2559-259/+271
| | | | | | | | This eliminates one overload on the term Raw. Differential Revision: https://reviews.llvm.org/D29098 llvm-svn: 293104
* Fix SBData::SetData() so that it always sets the address byte size correctly ↵Greg Clayton2017-01-252-0/+24
| | | | | | and added a test. llvm-svn: 293102
* LangRef: Document the allowed metadata dropping transforms.Peter Collingbourne2017-01-251-3/+16
| | | | | | | | | Document the current practice regarding dropping metadata on modules, functions and global variables. Differential Revision: https://reviews.llvm.org/D29110 llvm-svn: 293101
* Fix typo.Rui Ueyama2017-01-251-1/+1
| | | | llvm-svn: 293100
* Add a warning when the llvm-nm -print-size flag is used on a Mach-O file asKevin Enderby2017-01-254-3/+23
| | | | | | | | | | | | Mach-O files don’t have size information about the symbols in the object file format unlike ELF. Also add the part of the fix to llvm-nm that was missed with r290001 so -arch armv7m works. rdar://25681018 llvm-svn: 293099
* Link debugserver against Foundation to get access to NSProcessInfo.Sean Callanan2017-01-252-14/+14
| | | | | | debugserver-mini can't use Foundation so disable that code there. llvm-svn: 293098
* [CodeGen] [CUDA] Add the ability set default attrs on functions in linked ↵Justin Lebar2017-01-257-150/+282
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modules. Summary: Now when you ask clang to link in a bitcode module, you can tell it to set attributes on that module's functions to match what we would have set if we'd emitted those functions ourselves. This is particularly important for fast-math attributes in CUDA compilations. Each CUDA compilation links in libdevice, a bitcode library provided by nvidia as part of the CUDA distribution. Without this patch, if we have a user-function F that is compiled with -ffast-math that calls a function G from libdevice, F will have the unsafe-fp-math=true (etc.) attributes, but G will have no attributes. Since F calls G, the inliner will merge G's attributes into F's. It considers the lack of an unsafe-fp-math=true attribute on G to be tantamount to unsafe-fp-math=false, so it "merges" these by setting unsafe-fp-math=false on F. This then continues up the call graph, until every function that (transitively) calls something in libdevice gets unsafe-fp-math=false set, thus disabling fastmath in almost all CUDA code. Reviewers: echristo Subscribers: hfinkel, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D28538 llvm-svn: 293097
* Do not use .s extension for non-assembly files.Rui Ueyama2017-01-252-0/+0
| | | | llvm-svn: 293096
* Make error messages more consistent with other messages.Rui Ueyama2017-01-252-8/+10
| | | | llvm-svn: 293095
* [OpenMP] Initial implementation of OpenMP offloading library - libomptarget.George Rokos2017-01-2515-0/+3357
| | | | | | | | This is the patch upstreaming the device-agnostic part of libomptarget. Differential Revision: https://reviews.llvm.org/D14031 llvm-svn: 293094
* Change the --retain-symbols-file implementation.Rafael Espindola2017-01-255-15/+36
| | | | | | | | | | | | | | | | It now uses the same infrastructure as symbol versions. This fixes us creating a dynamic relocation without a corresponding dynamic symbol. This also means that unlike gold and bfd we keep a STB_LOCAL in the static symbol table. It seems an odd feature to offer precise control over what is in a symbol table that is not used by the dynamic linker. We can bring this back if needed, but it would probably be better to just have --discard option that tells the linker to keep in the static symbol table only what is in the dynamic one. Should fix the eog build. llvm-svn: 293093
* Revert "[PPC] Give unaligned memory access lower cost on processor that ↵Daniel Jasper2017-01-253-31/+1
| | | | | | | | | | supports it" This reverts commit r292680. It is causing significantly worse performance and test timeouts in our internal builds. I have already routed reproduction instructions your way. llvm-svn: 293092
* [pdb] Fix failing testZachary Turner2017-01-251-1/+2
| | | | llvm-svn: 293091
* [pdb] Correctly parse the hash adjusters table from TPI stream.Zachary Turner2017-01-254-77/+95
| | | | | | | | | | | | | This is not a list of pairs, it is a hash table data structure. We now correctly parse this out and dump it from llvm-pdbdump. We still need to understand the conditions that lead to a type getting an entry in the hash adjuster table. That will be done in a followup investigation / patch. Differential Revision: https://reviews.llvm.org/D29090 llvm-svn: 293090
* Remove useless cast and update a comment.Rui Ueyama2017-01-251-10/+8
| | | | llvm-svn: 293089
* SDag: fix how initial loads are formed when splitting vector ops.Tim Northover2017-01-252-1/+14
| | | | | | | | Later code expects the vector loads produced to be directly concatenable, which means we shouldn't pad anything except the last load produced with UNDEF. llvm-svn: 293088
* GlobalISel: rework getOrCreateVReg to avoid double lookup. NFC.Tim Northover2017-01-251-20/+20
| | | | | | Thanks to Quentin for suggesting the refactoring. llvm-svn: 293087
* DebugInfo: remove unused parameter from function. NFC.Tim Northover2017-01-252-4/+2
| | | | | | | I think it's a hold-over from some previous iteration, but it's never set to true in LLVM as it exists now. llvm-svn: 293086
* MemorySSA: Link all defs together into an intrusive defslist, to make ↵Daniel Berlin2017-01-253-44/+212
| | | | | | | | | | | | | | | | | | | | | | | updater easier Summary: This is the first in a series of patches to add a simple, generalized updater to MemorySSA. For MemorySSA, every def is may-def, instead of the normal must-def. (the best way to think of memoryssa is "everything is really one variable, with different versions of that variable at different points in the program). This means when updating, we end up having to do a bunch of work to touch defs below and above us. In order to support this quickly, i have ilist'd all the defs for each block. ilist supports tags, so this is quite easy. the only slightly messy part is that you can't have two iplists for the same type that differ only whether they have the ownership part enabled or not, because the traits are for the value type. The verifiers have been updated to test that the def order is correct. Reviewers: george.burgess.iv Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29046 llvm-svn: 293085
* Make this test more strict.Rafael Espindola2017-01-251-6/+27
| | | | | | While at it, also remove unused command line options. llvm-svn: 293084
* [AMDGPU] Bump up n_type for metadata v2Konstantin Zhuravlyov2017-01-252-2/+5
| | | | | | Differential Revision: https://reviews.llvm.org/D29115 llvm-svn: 293083
* [XRay][AArch64] More staging for tail call support in XRay AArch64 - in ↵Serge Rogatch2017-01-252-3/+52
| | | | | | | | | | | | | | | | | | compiler-rt Summary: This patch provides a trampoline for function tail exit tracing. Still, it's staging because code `1` is passed to the handler function (indicating a normal exit) instead of `2`, which would indicate tail exit. This is so until the logging part of XRay supports tail exits too. Related: https://reviews.llvm.org/D28947 (LLVM) Reviewers: dberris, rengolin Reviewed By: rengolin Subscribers: aemerson, llvm-commits, iid_iunknown Differential Revision: https://reviews.llvm.org/D28948 llvm-svn: 293082
* AMDGPU: Set call_convention bit in kernel_code_tMatt Arsenault2017-01-254-2/+9
| | | | | | | According to the documentation this is supposed to be -1 if indirect calls are not supported. llvm-svn: 293081
* [XRay][AArch64] More staging for tail call support in XRay on AArch64 - in LLVMSerge Rogatch2017-01-253-0/+82
| | | | | | | | | | | | | | | | Summary: This patch prepares more for tail call support in XRay. Until the logging part supports tail calls, this is just staging, so it seems LLVM part is mostly ready with this patch. Related: https://reviews.llvm.org/D28948 (compiler-rt) Reviewers: dberris, rengolin Reviewed By: dberris Subscribers: llvm-commits, iid_iunknown, aemerson Differential Revision: https://reviews.llvm.org/D28947 llvm-svn: 293080
* Fixed a typo in the synopsis (noecept -> noexcept). Thanks to Kim for the catchMarshall Clow2017-01-251-1/+1
| | | | llvm-svn: 293079
* [cmake] Fix -rpath-link in stand-alone buildMichal Gorny2017-01-251-0/+1
| | | | | | | | | | | Set LLVM_LIBRARY_OUTPUT_INTDIR as expected by llvm_setup_rpath() macro when doing stand-alone builds. This is required to pass correct -rpath-link when linking shared libraries, and therefore ensure that the linker can find dependency libraries correctly during the build. Differential Revision: https://reviews.llvm.org/D29099 llvm-svn: 293078
* Add iterator_range<regclass_iterator> to {Target,MC}RegisterInfo, NFCKrzysztof Parzyszek2017-01-258-34/+23
| | | | llvm-svn: 293077
* [SLP] Extra test for functionality with extra args.Alexey Bataev2017-01-251-2/+4
| | | | llvm-svn: 293076
* Revert "Do not verify dominator tree if it has no roots"Chad Rosier2017-01-253-9/+1
| | | | | | | This reverts commit r293033, per Danny's comment. In short, we require domtrees to have roots at all times. llvm-svn: 293075
* PowerPC: Slight cleanup of getReservedRegs(); NFCMatthias Braun2017-01-251-19/+10
| | | | | | | | Change getReservedRegs() to not mark a register as reserved and then revert that decision in some cases. Motivated by the discussion in https://reviews.llvm.org/D29056 llvm-svn: 293073
* [libcxx] Mentions "targeting C++11 and above" instead of "targeting C++11" ↵Mehdi Amini2017-01-251-1/+2
| | | | | | in the doc llvm-svn: 293071
* [OpenMP] Support for the proc_bind-clause on 'target parallel' on the NVPTX ↵Arpith Chacko Jacob2017-01-253-0/+123
| | | | | | | | | | | | | | device. This patch adds support for the proc_bind clause on the Spmd construct 'target parallel' on the NVPTX device. Since the parallel region is created upon kernel launch, this clause can be safely ignored on the NVPTX device at codegen time for level 0 parallelism. Reviewers: ABataev Differential Revision: https://reviews.llvm.org/D29128 llvm-svn: 293069
* [scudo] Enabling AArch64 support for ScudoKostya Kortchinsky2017-01-252-2/+2
| | | | | | | | | | | | | | | | | Summary: Adding ARM64 as a supported architecture for Scudo. The random shuffle is not yet supported for SizeClassAllocator32, which is used by the AArch64 allocator, so disable the associated test for now. Reviewers: kcc, alekseyshl, rengolin Reviewed By: rengolin Subscribers: aemerson, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D28960 llvm-svn: 293068
* Add loop pass insertion point EP_LateLoopOptimizationsKrzysztof Parzyszek2017-01-252-0/+10
| | | | | | Differential Revision: https://reviews.llvm.org/D28694 llvm-svn: 293067
* [powerpc] deactivate ThreadedOneSizeMallocStressTest asan test on powerpc64Bill Seurer2017-01-251-0/+5
| | | | | | | This has not reliably worked on powerpc since r279664. Re-enable this once the problem is tracked down and fixed. llvm-svn: 293066
OpenPOWER on IntegriCloud