summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix some user facing typosSylvestre Ledru2018-03-172-3/+3
| | | | llvm-svn: 327776
* [Driver] Fix the descriptions for -Tdata and -Ttext optionsAaron Smith2018-03-171-2/+2
| | | | | | | | | | Reviewers: llvm-commits Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D44581 llvm-svn: 327775
* AMDGPU/GlobalISel: Cleanup constant legalityMatt Arsenault2018-03-172-64/+27
| | | | llvm-svn: 327774
* AMDGPU/GlobalISel: Basic G_GEP legalityMatt Arsenault2018-03-172-4/+110
| | | | llvm-svn: 327773
* AMDGPU/GlobalISel: Basic legality for load/storeMatt Arsenault2018-03-173-14/+292
| | | | llvm-svn: 327772
* [bindings/go] Add a missing `,` in the test code to fix a go compileChandler Carruth2018-03-171-1/+1
| | | | | | failure. llvm-svn: 327771
* [cxx_status] Add entry for the Reflection TS.Richard Smith2018-03-171-2/+0
| | | | llvm-svn: 327770
* [cxx_status] Update to match Jacksonville 2018 motions.Richard Smith2018-03-171-50/+97
| | | | | | | | Also rearrange how we list DR motions: rather than listing them as part of some later standard, list them against the feature they are a DR against. Explicitly add a description of how we handle DRs. llvm-svn: 327769
* Adding nocf_check attribute for cf-protection fine tuningOren Ben Simhon2018-03-1723-44/+193
| | | | | | | | | | The patch adds nocf_check target independent attribute for disabling checks that were enabled by cf-protection flag. The attribute can be appertained to functions and function pointers. Attribute name follows GCC's similar attribute name. Differential Revision: https://reviews.llvm.org/D41880 llvm-svn: 327768
* [X86] Added support for nocf_check attribute for indirect Branch TrackingOren Ben Simhon2018-03-1734-76/+302
| | | | | | | | | | | | | | | X86 Supports Indirect Branch Tracking (IBT) as part of Control-Flow Enforcement Technology (CET). IBT instruments ENDBR instructions used to specify valid targets of indirect call / jmp. The `nocf_check` attribute has two roles in the context of X86 IBT technology: 1. Appertains to a function - do not add ENDBR instruction at the beginning of the function. 2. Appertains to a function pointer - do not track the target function of this pointer by adding nocf_check prefix to the indirect-call instruction. This patch implements `nocf_check` context for Indirect Branch Tracking. It also auto generates `nocf_check` prefixes before indirect branchs to jump tables that are guarded by range checks. Differential Revision: https://reviews.llvm.org/D41879 llvm-svn: 327767
* [SystemZ] Add 'REQUIRES: asserts' to test case using debug output.Jonas Paulsson2018-03-171-0/+1
| | | | llvm-svn: 327766
* [SystemZ] computeKnownBitsForTargetNode() / ComputeNumSignBitsForTargetNode()Jonas Paulsson2018-03-179-21/+1560
| | | | | | | | | | | Improve/implement these methods to improve DAG combining. This mainly concerns intrinsics. Some constant operands to SystemZISD nodes have been marked Opaque to avoid transforming back and forth between generic and target nodes infinitely. Review: Ulrich Weigand llvm-svn: 327765
* [SelectionDAG] Handle big endian target BITCAST in computeKnownBits()Jonas Paulsson2018-03-172-6/+34
| | | | | | | | | | | | | | | The BITCAST handling in computeKnownBits() previously only worked for little endian. This patch reverses the iteration over elements for a big endian target which allows this to work in this case also. SystemZ test case. Review: Eli Friedman https://reviews.llvm.org/D44249 llvm-svn: 327764
* Bugfix, extern declarations for libomp functions are `extern "C"` declarationsGeorge Rokos2018-03-171-0/+6
| | | | llvm-svn: 327763
* Revert "Mmap interceptor new option, Write Exec runtime detector"Vitaly Buka2018-03-175-47/+0
| | | | | | | | Breaks Android bot. This reverts commit r327747. llvm-svn: 327762
* [GlobalsAA] Fix a pretty terrible bug that has been in GlobalsAA forChandler Carruth2018-03-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | a long time. The key thing is that we need to create value handles for every function that we create a `FunctionInfo` object around. Without this, when that function is deleted we can end up creating a new function that collides with its address and look up a stale AA result. With that AA result we can in turn miscompile code in ways that break. This is seriously one of the most absurd miscompiles I've seen. It only reproduced for us recently and only when building a very large server with both ThinLTO and PGO. A *HUGE* shout out to Wei Mi who tracked all of this down and came up with this patch. I'm just landing it because I happened to still by at a computer. He or I can work on crafting a test case to hit this (now that we know what to target) but it'll take a while, and we've been chasing this for a long time and need it fix Right Now. llvm-svn: 327761
* [MachineOutliner] Make KILLs invisibleJessica Paquette2018-03-163-0/+13
| | | | | | | | | At the point the outliner runs, KILLs don't impact anything, but they're still considered unique instructions. This commit makes them invisible like DebugValues so that they can still be outlined without impacting outlining decisions. llvm-svn: 327760
* [Fuzzer] Build the shared memory hooks for FuchsiaPetr Hosek2018-03-161-0/+1
| | | | | | | | | This is needed otherwise we'll get undefined references when trying to use the libFuzzer built for Fuchsia. Differential Revision: https://reviews.llvm.org/D44590 llvm-svn: 327759
* OpenBSD UBsan support final missing bitsVitaly Buka2018-03-162-5/+7
| | | | | | | | | | | | | | | Summary: One forgotten file change + reordering one header due to clang-format Patch by David CARLIER Reviewers: vitalybuka, vsk Subscribers: kubamracek, fedor.sergeev, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D44556 llvm-svn: 327758
* [llvm-mca] Remove method getSchedModel() from the Backend.Andrea Di Biagio2018-03-163-7/+7
| | | | llvm-svn: 327756
* [MS] Fix bug in r327732 with devirtualized complete destructor callsReid Kleckner2018-03-162-0/+26
| | | | llvm-svn: 327754
* Fix the Windows build after r327750Frederic Riss2018-03-161-1/+1
| | | | llvm-svn: 327753
* [asan] Replace vfork with fork.Evgeniy Stepanov2018-03-163-0/+43
| | | | | | | | | | | | | | | | | | | | Summary: vfork is not ASan-friendly because it modifies stack shadow in the parent process address space. While it is possible to compensate for that with, for example, __asan_handle_no_return before each call to _exit or execve and friends, simply replacing vfork with fork looks like by far the easiest solution. Posix compliant programs can not detect the difference between vfork and fork. Fixes https://github.com/google/sanitizers/issues/925 Reviewers: kcc, vitalybuka Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D44587 llvm-svn: 327752
* [DWARFASTParserClang] Complete external record types before using them as a ↵Frederic Riss2018-03-164-0/+68
| | | | | | | | | | | | | | | | | | decl context. Summary: When in a gmodules-like debugging scenario, you can have a parent decl context that gets imported from an external AST. When this happens, we must be careful to complete this type before adding children to it, otherwise it sometimes results in a crash. Reviewers: clayborg, jingham Subscribers: aprantl, JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D43592 llvm-svn: 327750
* [llvm-mca] Remove unused methods from Backend. NFCAndrea Di Biagio2018-03-161-17/+0
| | | | llvm-svn: 327749
* [asan] Remove empty fork interceptor.Evgeniy Stepanov2018-03-162-14/+0
| | | | | | After a partial revert, ASan somehow ended up with an empty interceptor for fork(). llvm-svn: 327748
* Mmap interceptor new option, Write Exec runtime detectorVitaly Buka2018-03-165-0/+47
| | | | | | | | | | | | | | | | Summary: Following-up the refactoring of mmap interceptors, adding a new common option to detect PROT_WRITE|PROT_EXEC pages request. Patch by David CARLIER Reviewers: vitalybuka, vsk Reviewed By: vitalybuka Subscribers: krytarowski, #sanitizers Differential Revision: https://reviews.llvm.org/D44194 llvm-svn: 327747
* [Analysis] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2018-03-164-225/+266
| | | | | | other minor fixes (NFC). llvm-svn: 327746
* Quiet unused variable warnings. NFC.David L Kreitzer2018-03-161-0/+3
| | | | | | Differential revision: https://reviews.llvm.org/D44583 llvm-svn: 327745
* [X86] Pass SelectionDAG into X86ISelAddressMode::dump and on to SDNode::dump.Craig Topper2018-03-161-4/+4
| | | | | | This prevents a crash in SelectionDAGDumper with -debug when trying to print mem operands if one of the registers in the addressing mode comes from a load. llvm-svn: 327744
* [InstSimplify] add NaN constant diversity; NFCSanjay Patel2018-03-161-39/+75
| | | | llvm-svn: 327743
* [Hexagon] Avoid bank conflicts in post-RA schedulerKrzysztof Parzyszek2018-03-163-4/+170
| | | | | | | | | | Avoid scheduling two loads in such a way that they would end up in the same packet. If there is a load in a packet, try to schedule a non-load next. Patch by Brendon Cahoon. llvm-svn: 327742
* [MS] Fix tests after r327738 that only fail with a default Windows targetReid Kleckner2018-03-162-9/+9
| | | | llvm-svn: 327741
* Moved extern declarations to private header file, they are only used from ↵George Rokos2018-03-162-4/+4
| | | | | | within libomptarget, they don't need to be in omptarget.h. llvm-svn: 327740
* [MS] Commit some changes that were intended to be part of r327738Reid Kleckner2018-03-161-2/+2
| | | | llvm-svn: 327739
* [MS] Don't escape MS C++ names with \01Reid Kleckner2018-03-16145-3623/+3623
| | | | | | | It is not needed after LLVM r327734. Now it will be easier to copy-paste IR symbol names from Clang. llvm-svn: 327738
* [Hexagon] Add lit testcases for atomic intrinsicsKrzysztof Parzyszek2018-03-163-0/+177
| | | | | | Patch by Ben Craig. llvm-svn: 327737
* [COFF] Clarify comment. NFCShoaib Meenai2018-03-161-6/+8
| | | | | | | | | | | Reid pointed out the string table for supporting long section names is a BFD extension and the comments should reflect that. Explicitly spell out link.exe's and binutil's behavior around section names and the rationale for LLD's behavior. Differential Revision: https://reviews.llvm.org/D42659 llvm-svn: 327736
* [Parser] Remove hard-coded bracket depth limitJan Korous2018-03-162-3/+1
| | | | | | The diagnostics produced if assert fails are using proper limit from language definition already. llvm-svn: 327735
* [IR] Avoid the need to prefix MS C++ symbols with '\01'Reid Kleckner2018-03-168-24/+230
| | | | | | | | | | | | | | | | | | | | Now the Windows mangling modes ('w' and 'x') do not do any mangling for symbols starting with '?'. This means that clang can stop adding the hideous '\01' leading escape. This means LLVM debug logs are less likely to contain ASCII escape characters and it will be easier to copy and paste MS symbol names from IR. Finally. For non-Windows platforms, names starting with '?' still get IR mangling, so once clang stops escaping MS C++ names, we will get extra '_' prefixing on MachO. That's fine, since it is currently impossible to construct a triple that uses the MS C++ ABI in clang and emits macho object files. Differential Revision: https://reviews.llvm.org/D7775 llvm-svn: 327734
* Revert r327721 "This patch fixes the invalid usage of OptSize in Machine ↵Reid Kleckner2018-03-161-3/+3
| | | | | | | | | Combiner." It causes asserts when compiling Chromium on Win32 with optimizations. We compile many things with -Os. llvm-svn: 327733
* [MS] Always use base dtors in place of complete/vbase dtors when possibleReid Kleckner2018-03-1617-56/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously we tried too hard to uphold the fiction that destructor variants work like they do on Itanium throughout the ABI-neutral parts of clang. This lead to MS C++ ABI incompatiblities and other bugs. Now, -mconstructor-aliases will no longer control this ABI detail, and clang -cc1's LLVM IR output will be this much closer to the clang driver's. Based on a patch by Zahira Ammarguellat: https://reviews.llvm.org/D39063 I've tried to move the logic that Zahira added into MicrosoftCXXABI.cpp. There is only one ABI-specific detail sticking out, and that is in CodeGenModule::getAddrOfCXXStructor, where we collapse complete dtors to base dtors in the MS ABI. This fixes PR32990. Reviewers: erichkeane, zahiraam, majnemer, rjmccall Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D44505 llvm-svn: 327732
* Skip TestThreadSpecificBpPlusCondition on Darwin due to timeoutsVedant Kumar2018-03-161-0/+1
| | | | | | Bot failure: https://ci.swift.org/job/oss-lldb-incremental-osx/1104/ llvm-svn: 327731
* [X86] Merge ADDSUB/SUBADD detection into single methods that can detect ↵Craig Topper2018-03-161-101/+74
| | | | | | | | | | either and indicate what they found. Previously, we called the same functions twice with a bool flag determining whether we should look for ADDSUB or SUBADD. It would be more efficient to run the code once and detect either pattern with a flag to tell which type it found. Differential Revision: https://reviews.llvm.org/D44540 llvm-svn: 327730
* Remove -gmodules restriction from testAdrian Prantl2018-03-161-1/+0
| | | | llvm-svn: 327729
* [CorrelatedValuePropagation] Use ↵Craig Topper2018-03-161-3/+3
| | | | | | SelectInst::getCondition/getTrueValue/getFalseValue instead of getOperand for readability. NFC llvm-svn: 327728
* [analyzer] Fix crashes in RetainCountChecker when underlying region is not a varGeorge Karpenkov2018-03-162-8/+37
| | | | | | | | | | | | For other regions, the error message contains a good indication of the problem, and there, in general, nothing helpful we can print. Error pointer to the problematic expression seems enough. rdar://37323555 Differential Revision: https://reviews.llvm.org/D44409 llvm-svn: 327727
* [AMDGPU] Supported ds_write_b128 generation.Farhana Aleen2018-03-1610-23/+59
| | | | | | | | | | | | | | Summary: This is a follow-on patch of https://reviews.llvm.org/D44210 Author: FarhanaAleen Reviewed By: msearles Subscribers: llvm-commits, AMDGPU Differential Revision: https://reviews.llvm.org/D44319 llvm-svn: 327726
* [docs] ReleaseNotes: document -Wextra-semi changes.Roman Lebedev2018-03-161-1/+7
| | | | | | | | | I should have done it in rL327558 / D43162, but forgot.. I'm not 100% sure about the text, but i don't think it warrants a whole new differential revision. llvm-svn: 327725
* [X86] Post process the DAG after isel to remove vector moves that were added ↵Craig Topper2018-03-166-66/+65
| | | | | | | | | | | | to zero upper bits. We previously avoided inserting these moves during isel in a few cases which is implemented using a whitelist of opcodes. But it's too difficult to generate a perfect list of opcodes to whitelist. Especially with AVX512F without AVX512VL using 512 bit vectors to implement some 128/256 bit operations. Since isel is done bottoms up, we'd have to check the VT and opcode and subtarget in order to determine whether an EXTRACT_SUBREG would be generated for some operations. So instead of doing that, this patch adds a post processing step that detects when the moves are unnecesssary after isel. At that point any EXTRACT_SUBREGs would have already been created and appear in the DAG. So then we just need to ensure the input to the move isn't one. Differential Revision: https://reviews.llvm.org/D44289 llvm-svn: 327724
OpenPOWER on IntegriCloud