summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* utils/release: Add merge-git.shTom Stellard2018-06-131-0/+92
| | | | | | | | | | | | | | | Summary: This script allows you to use git to backport a commit to a stable branch while generating the exact same commit message (ignoring whitespace) that you would get from using the merge.sh script with svn. Reviewers: hansw Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D47760 llvm-svn: 334568
* [SimplifyIndVars] Ignore dead usersMax Kazantsev2018-06-139-2/+72
| | | | | | | | | | | | | IndVarSimplify sometimes makes transforms basing on users that are trivially dead. In particular, if DCE wasn't run before it, there may be a dead `sext/zext` in loop that will trigger widening transforms, however it makes no sense to do it. This patch teaches IndVarsSimplify ignore the mist trivial cases of that. Differential Revision: https://reviews.llvm.org/D47974 Reviewed By: sanjoy llvm-svn: 334567
* Revert "Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-build"Ahmed Bougacha2018-06-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | This reverts commit r334543. My understanding is, that commit is intended to make the llvm-build invocation have a correct "--enable-optional-components" value, but: - it already has a value: it's quoted in the command line a few lines below, and, if I hack llvm-build to print sys.argv, it does look correct: -- llvm-build output: ['.../utils/llvm-build/llvm-build', '--native-target', 'X86', '--enable-targets', 'X86;ARM;AArch64', '--enable-optional-components', '', '--write-library-table', '.../build/tools/llvm-config/LibraryDependencies.inc', '--write-cmake-fragment', '.../build/LLVMBuild.cmake'] - the " " string seems to evaluate to TRUE in CMake (*sigh*), so this basically force-enables LLVM_USE_INTEL_JITEVENTS, regardless of the value of the option. On Darwin, JITEvents is not supported, so this bypasses that OS check but is guaranteed to fail later. llvm-svn: 334566
* Fix crash emitting transparent list initializer for a large aggregate.Richard Smith2018-06-132-4/+18
| | | | llvm-svn: 334565
* Use shorter names for #lo, #hi, #ha, etc. NFC.Rui Ueyama2018-06-131-15/+15
| | | | | | | | Since these functions are file-local, the new names shouldn't be ambiguous. Differential Revision: https://reviews.llvm.org/D48093 llvm-svn: 334564
* [X86] Mark all instructions that have masked store semantics with ↵Craig Topper2018-06-132-22/+10
| | | | | | | | NotMemoryFoldable. Remove dependency on SchedRW from memory table autogenerator. Previously we were whitelisting in instructions based on their SchedRW value. With the masked store instructions explicitly removed via NotMemoryFoldable, we don't seem to need this check anymore. llvm-svn: 334563
* [X86] Remove VPCOMPRESSB/W from the autogenerated load folding table.Craig Topper2018-06-131-2/+4
| | | | llvm-svn: 334562
* [CUDA][HIP] Allow CUDA __global__ functions to have amdgpu kernel attributesYaxun Liu2018-06-125-67/+76
| | | | | | | | | | | | There are HIP applications e.g. Tensorflow 1.3 using amdgpu kernel attributes, however currently they are only allowed on OpenCL kernel functions. This patch will allow amdgpu kernel attributes to be applied to CUDA/HIP __global__ functions. Differential Revision: https://reviews.llvm.org/D47958 llvm-svn: 334561
* [analyzer] Do not crash in the visitor when the function is given more ↵George Karpenkov2018-06-122-1/+16
| | | | | | | | | | arguments than it has parameters rdar://40335545 Differential Revision: https://reviews.llvm.org/D48107 llvm-svn: 334560
* [AMDGPU] DAG combine to produce V_PERM_B32Stanislav Mekhanoshin2018-06-126-1/+413
| | | | | | Differential Revision: https://reviews.llvm.org/D48099 llvm-svn: 334559
* [ASAN] disable fgets_fputs test for android and darwinPeter Wu2018-06-121-0/+1
| | | | | | | | aarch64/aosp_marlin-userdebug/OPR4.170623.016] builder unexpectedly failed the fgets test (`assertion "fp" failed`). macOS unexpectedly passes the fputs test without triggering ASAN. llvm-svn: 334558
* Disable warnings for the generated LLDB wrapper sourceRaphael Isemann2018-06-121-6/+5
| | | | | | | | | | | | | | | | | Summary: This source files emits all kind of compiler warnings on different platforms. As the source code in the file is generated and we therefore can't actually fix the warnings, we might as well disable them. Reviewers: aprantl, davide Reviewed By: davide Subscribers: davide, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D48096 llvm-svn: 334557
* [AArch64] add tests for fadd with more than one use; NFCSanjay Patel2018-06-121-27/+83
| | | | llvm-svn: 334556
* Added missing include to AMDHSAKernelDescriptor.hRaphael Isemann2018-06-121-0/+1
| | | | | | | We use size_t in this header, so we also need to include cstddef to make it compile. Fixes the module builds. llvm-svn: 334555
* [analyzer] Ensure that loop widening does not invalidate referencesMatthew Voss2018-06-122-0/+33
| | | | | | | | | | Loop widening can invalidate a reference. If the analyzer attempts to visit the destructor to a non-existent reference, it will crash. This patch ensures that the reference is preserved. https://reviews.llvm.org/D47044 llvm-svn: 334554
* [DAGCombiner] Recognize more patterns for ABSKrzysztof Parzyszek2018-06-125-36/+65
| | | | | | Differential Revision: https://reviews.llvm.org/D47831 llvm-svn: 334553
* Fix /WholeArchive bug.Rui Ueyama2018-06-123-20/+54
| | | | | | | | | | `lld-link foo.lib /wholearchive:foo.lib` should work the same way as `lld-link /wholearchive:foo.lib foo.lib`. Previously, /wholearchive in the former case was ignored. Differential Revision: https://reviews.llvm.org/D47565 llvm-svn: 334552
* [X86] add avx512 tests for potentially miscompiling cvttp2si/cvttp2ui (PR37751).Craig Topper2018-06-121-0/+358
| | | | llvm-svn: 334551
* [CMake][Darwin] Match cxx-headers -> cxx_headers libcxx target rename.Ahmed Bougacha2018-06-121-1/+1
| | | | | | This was changed in r334477. llvm-svn: 334550
* Added modulemap for lldb-miRaphael Isemann2018-06-121-0/+79
| | | | | | | | | | | | | | Summary: This patch allows building a C++ module for the lldb-mi headers. Reviewers: bruno, aprantl Reviewed By: aprantl Subscribers: lldb-commits, ki.stfu Differential Revision: https://reviews.llvm.org/D47996 llvm-svn: 334549
* [COFF] Fix crash when emitting symbol tables with GCShoaib Meenai2018-06-122-1/+31
| | | | | | | | | | | | | When running with linker GC (`-opt:ref`), defined imported symbols that are referenced but then dropped by GC end up with their `Location` member being nullptr, which means `getChunk()` returns nullptr for them and attempting to call `getChunk()->getOutputSection()` causes a crash from the nullptr dereference. Check for `getChunk()` being nullptr and bail out early to avoid the crash. Differential Revision: https://reviews.llvm.org/D48092 llvm-svn: 334548
* Remove malloc.h include from Intel JIT events codeReid Kleckner2018-06-121-1/+0
| | | | llvm-svn: 334547
* [libFuzzer] [NFC] Do not use hardcoded relative paths in tests.George Karpenkov2018-06-121-11/+12
| | | | | | | | | For paths without "%t" inside uniqueness is not guaranteed, and potential collisions might be present. Differential Revision: https://reviews.llvm.org/D47288 llvm-svn: 334546
* [libFuzzer] [NFC] Make compiler command generation more readable.George Karpenkov2018-06-121-7/+20
| | | | | | | | Use config.clang as a more general option than config.c_compiler. Differential Revision: https://reviews.llvm.org/D47295 llvm-svn: 334545
* Add null check to Intel JIT event listenerReid Kleckner2018-06-121-4/+6
| | | | llvm-svn: 334544
* Fix how LLVMOPTIONALCOMPONENTS is passed to llvm-buildReid Kleckner2018-06-121-0/+1
| | | | | | | | | | | | | Patch by Force.Charlie-I If LLVM_USE_INTEL_JITEVENTS and LLVM_USE_OPROFILE not set, "${LLVMOPTIONALCOMPONENTS}" is empty, but **--enable-optional-components** need arg, Cause **--write-library-table** to be skipped parsed. Differential Revision: https://reviews.llvm.org/D47982 llvm-svn: 334543
* [analyzer] [NFC] Remove "removeInvalidation" from visitor APIGeorge Karpenkov2018-06-122-9/+3
| | | | | | | | | | | removeInvalidation is a very problematic API, as it makes suppression order-dependent. Moreover, it was used only once, and could be rewritten in a much cleaner way. Differential Revision: https://reviews.llvm.org/D48045 llvm-svn: 334542
* [analyzer] [NFC] Move ::dump methods from BugReporter.cpp to PathDiagnostics.cppGeorge Karpenkov2018-06-123-104/+106
| | | | | | | | | | BugReporter.cpp is already severely overloaded, and those dump methods are on PathDiagnostics and should belong in the corresponding implementation file. Differential Revision: https://reviews.llvm.org/D48035 llvm-svn: 334541
* [analyzer] [NFC] Remove most usages of getEndPathGeorge Karpenkov2018-06-123-24/+33
| | | | | | | | | | | | | | | getEndPath is a problematic API, because it's not clear when it's called (hint: not always at the end of the path), it crashes at runtime with more than one non-nullptr returning implementation, and diagnostics internal depend on it being called at some exact place. However, most visitors don't actually need that: all they want is a function consistently called after all nodes are traversed, to perform finalization and to decide whether invalidation is needed. Differential Revision: https://reviews.llvm.org/D48042 llvm-svn: 334540
* Work around false -Wmissing-braces warning from old clang which has been ↵Fangrui Song2018-06-121-1/+1
| | | | | | fixed in r314838 llvm-svn: 334539
* [ORC] Add a fallback definition generator for VSOs.Lang Hames2018-06-123-66/+146
| | | | | | | | | | | | If a VSO has a fallback definition generator attached it will be called during lookup (and lookupFlags) for any unresolved symbols. The definition generator can add new definitions to the VSO for any unresolved symbol. This allows VSOs to generate new definitions on demand. The immediate use case for this code is supporting VSOs that can import definitions found via dlsym on demand. llvm-svn: 334538
* [ORC] Refactor blocking lookup logic into the blockingLookup function, andLang Hames2018-06-125-60/+70
| | | | | | | implement existing blocking lookups (the lookup function) and JITSymbolResolverAdapter on top of that. llvm-svn: 334537
* [RuntimeDyld] Add an assert to catch misbehaving symbol resolvers.Lang Hames2018-06-121-0/+3
| | | | | | | | | Resolvers are required to find results for all requested symbols or return an error, but if a resolver fails to adhere to this contract (by returning results for only a subset of the requested symbols) then this code will infinite loop. This assertion catches resolvers that fail to adhere to the contract. llvm-svn: 334536
* [MCJIT] Call materializeAll on modules before compiling them in MCJIT.Lang Hames2018-06-121-0/+6
| | | | | | | | | This only affects modules with lazy GVMaterializers attached (usually modules read off disk using the lazy bitcode reader). For such modules, materializing before compiling prevents crashes due to missing function bodies / initializers. llvm-svn: 334535
* Handle R_X86_64_GOTOFF64.Rui Ueyama2018-06-122-0/+20
| | | | | | | | | | | | | | | R_X86_64_GOTOFF64 is a relocation type to set to a distance betwween a symbol and the beginning of the .got section. Previously, we always created a dynamic relocation for the relocation type even though it can be resolved at link-time. Creating a dynamic relocation for R_X86_64_GOTOFF64 caused link failure for some programs that do have a relocation of the type in a .text section, as text relocations are prohibited in most configurations. Differential Revision: https://reviews.llvm.org/D48058 llvm-svn: 334534
* [ELF][PPC64] Support R_PPC64_DTPREL64 which may be emitted in .rela.debug_addrFangrui Song2018-06-122-0/+8
| | | | llvm-svn: 334533
* [ELF] Support R_X86_64_GOTPC{32,64}Fangrui Song2018-06-122-0/+25
| | | | | | | | | | Reviewers: ruiu, grimar, espindola Subscribers: emaste, arichardson, llvm-commits Differential Revision: https://reviews.llvm.org/D47098 llvm-svn: 334532
* [AArch64] Support reserving x20 registerPetr Hosek2018-06-129-13/+50
| | | | | | | | | | | | Register x20 is a callee-saved register which may be used for other purposes in certain contexts, for example to hold special variables within the kernel. This change adds support for reserving this register both to frontend and backend to make this register usable for these purposes. Differential Revision: https://reviews.llvm.org/D46552 llvm-svn: 334531
* [X86] Remove unnecessary include from one of the tblgen emitters.Craig Topper2018-06-121-1/+0
| | | | llvm-svn: 334530
* [X86] Remove mayLoad flag from AVX512 truncating store instructions.Craig Topper2018-06-121-2/+1
| | | | llvm-svn: 334529
* Revert r334458, r334220, r334212, r334139.Matt Morehouse2018-06-122-42/+10
| | | | | | | Reverts changes to AddCompilerRT.cmake due to breakage of http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/. llvm-svn: 334528
* [clang-format] Fix crash while reflowing backslash in commentsKrasimir Georgiev2018-06-122-7/+53
| | | | | | | | | | | | | | | | | | | | | Summary: The added test case was currently crashing with an assertion: ``` krasimir@krasimir> cat test.cc ~ // How to run: // bbbbb run \ // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr \ // <log_file> -- --output_directory="<output_directory>" krasimir@krasimir> ~/work/llvm-build/bin/clang-format test.cc ~ clang-format: /usr/local/google/home/krasimir/work/llvm/tools/clang/lib/Format/WhitespaceManager.cpp:117: void clang::format::WhitespaceManager::calculateLineBreakInformation(): Assertion `PreviousOriginalWhitespaceEndOffset <= OriginalWhitespaceStartOffset' failed. ``` The root cause was that BreakableToken was not considering the case of a reflow between an unescaped newline in a line comment. Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D48089 llvm-svn: 334527
* [analyzer] [NFC] Now let's have only one place for diagnostics generationGeorge Karpenkov2018-06-121-43/+15
| | | | | | Differential Revision: https://reviews.llvm.org/D47808 llvm-svn: 334526
* [analyzer] [NFC] Unify Minimal and Extensive diagnostics.George Karpenkov2018-06-121-286/+243
| | | | | | | | | | Once we removed AlternateExtensive, I've looked closer into the difference between Minimal and Extensive, and turns out, the difference was not that large. Differential Revision: https://reviews.llvm.org/D47756 llvm-svn: 334525
* [analyzer] [NFC] Remove unused Extensive diagnostic setting,George Karpenkov2018-06-1232-4009/+3029
| | | | | | | | | | | | | | Rename AlternateExtensive to Extensive. In 2013, five years ago, we have switched to AlternateExtensive diagnostics by default, and Extensive was available under unused, undocumented flag. This change remove the flag, renames the Alternate diagnostic to Extensive (as it's no longer Alternate), and ports the test. Differential Revision: https://reviews.llvm.org/D47670 llvm-svn: 334524
* [MS][ARM64] Hoist __ImageBase handling into TargetLoweringObjectFileCOFFReid Kleckner2018-06-126-112/+126
| | | | | | | | | | | | All COFF targets should use @IMGREL32 relocations for symbol differences against __ImageBase. Do the same for getSectionForConstant, so that immediates lowered to globals get merged across TUs. Patch by Chris January Differential Revision: https://reviews.llvm.org/D47783 llvm-svn: 334523
* [asan, myriad] Support environment variablesWalter Lee2018-06-121-2/+5
| | | | | | | | | | Provide a buffer that the test harness can write into to provide values for the environment variables. Format is a null-separated list of VAR=value pairs; this is sufficent for our purpose. Differential Revision: https://reviews.llvm.org/D47960 llvm-svn: 334522
* AMDHSA/NFC: Code object v3 updates (additional):Konstantin Zhuravlyov2018-06-123-13/+26
| | | | | | - Move section selection and alignment to AMDGPUAsmPrinter llvm-svn: 334521
* [MIR][MachineCSE] Implementing proper MachineInstr::getNumExplicitDefs()Roman Tereshin2018-06-124-18/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently, MachineInstr class definition as well as pretty much all of the machine passes assume that the only kind of MachineInstr's operands that is variadic for variadic opcodes is explicit non-definitions. In particular, this assumption is made by MachineInstr::defs(), uses(), and explicit_uses() methods, as well as by MachineCSE pass. The assumption is incorrect judging from at least TableGen backend implementation, that recognizes variable_ops in OutOperandList, and the very existence of G_UNMERGE_VALUES generic opcode, or ARM load multiple instructions, all of which have variadic defs. In particular, MachineCSE pass breaks MIR with CSE'able G_UNMERGE_VALUES instructions in it. This commit implements MachineInstr::getNumExplicitDefs() similar to pre-existing MachineInstr::getNumExplicitOperands(), fixes MachineInstr::defs(), uses(), and explicit_uses(), and fixes MachineCSE pass. As the issue addressed seems to affect only machine passes that could be ran mid-GlobalISel pipeline at the moment, the other passes aren't fixed by this commit, like MachineLICM: that could be done on per-pass basis when (if ever) they get adopted for GlobalISel. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D45640 llvm-svn: 334520
* AMDHSA: Code object v3 updatesKonstantin Zhuravlyov2018-06-1211-203/+469
| | | | | | | | | | | | | | | - Do not emit following assembler directives: - .hsa_code_object_version - .hsa_code_object_isa - .amd_amdgpu_isa - .amd_amdgpu_hsa_metadata - .amd_amdgpu_pal_metadata - Do not emit .note entries - Cleanup and bring in sync kernel descriptor header file - Emit kernel descriptor into .rodata with appropriate relocations and alignments llvm-svn: 334519
OpenPOWER on IntegriCloud