summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix "commas at the end of enumerator lists are a C99-specific"Vitaly Buka2019-08-281-1/+1
| | | | llvm-svn: 370141
* AMDGPU/GlobalISel: Implement addrspacecast for 32-bit constant addrspaceMatt Arsenault2019-08-282-8/+240
| | | | llvm-svn: 370140
* [lit] Fix the way we check if an environment var is setJonas Devlieghere2019-08-281-1/+1
| | | | | | The old method would throw a KeyError. llvm-svn: 370138
* [test] Disable TestConcurrentManySignals on Darwin.Jonas Devlieghere2019-08-281-0/+2
| | | | | | This test is flaky on GreenDragon. Disable it until we figure out why. llvm-svn: 370136
* [lit] Don't set DYLD_LIBRARY_PATH when DYLD_INSERT_LIBRARIES is set.Jonas Devlieghere2019-08-281-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Setting DYLD_INSERT_LIBRARIES to the Asan runtime and DYLD_LIBRARY_PATH to the LLVM shared library dir causes the test suite to crash with a segfault. We see this on the LLDB sanitized bot [1] on GreenDragon. I've spent some time investigating, but I'm not sure what's going on (yet). Originally I thought this was because we were building compiler-rt and were loading an incompatible, just-built Asan library. However, the issue persists even without compiler-rt. It doesn't look like the Asan runtime is opening any other libraries that might be found in LLVM's shared library dir and talking to the team confirms that. Another possible explanation is that we're loading lldb form a place we don't expect, but that doesn't make sense either, because DYLD_LIBRARY_PATH is always set without the crash. I tried different Python versions and interpreters but the issue persist. As a (temporary?) workaround I propose not setting DYLD_LIBRARY_PATH when DYLD_INSERT_LIBRARIES is set so we can turn the Asan bot on again and get useful results. [1] http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-sanitized/ Differential revision: https://reviews.llvm.org/D66845 llvm-svn: 370135
* [ObjC] Fix type checking for qualified id block parameters.Volodymyr Sapsai2019-08-282-3/+14
| | | | | | | | | | | | | | | | | | When checking if block types are compatible, we are checking for compatibility their return types and parameters' types. As these types have different variance, we need to check them in different order. rdar://problem/52788423 Reviewers: erik.pilkington, arphaman Reviewed By: arphaman Subscribers: jkorous, dexonsmith, ributzka, cfe-commits Differential Revision: https://reviews.llvm.org/D66831 llvm-svn: 370130
* Re-land [clang-scan-deps] Minimizer: Correctly handle multi-line content ↵Alexandre Ganea2019-08-283-14/+55
| | | | | | | | | | with CR+LF line endings Previously, an #error directive with quoted, multi-line content, along with CR+LF line endings wasn't handled correctly. Differential Revision: https://reviews.llvm.org/D66556 llvm-svn: 370129
* [NFC] Assert preconditions and merge all users into one codepath in Loads.cppPhilip Reames2019-08-271-6/+11
| | | | llvm-svn: 370128
* [lld][WebAssembly] Support for growable tablesJacob Gravelle2019-08-275-1/+27
| | | | | | | | | | | | | | | Adds --growable-table flag to handle building wasm modules with tables that can grow. Wasm tables that we use to store function pointers. In order to add functions to that table at runtime, we need to either preallocate space, or grow the table. In order to specify a table with no maximum size, we need some flag to handle that case, separately from a potential --max-table-size= flag. Note that the number of elements in the table isn't knowable until link-time, so it's unclear if we will want a --max-table-size= flag in the future. llvm-svn: 370127
* Revert "[lldb] Move redundant persistent variable counter to ↵Adrian Prantl2019-08-274-12/+18
| | | | | | | | | | | | ClangPersistentVariables" This reverts commit r367842 since it wasn't quite as NFC as advertised and broke Swift support. See https://reviews.llvm.org/D46083 for the rationale behind the original functionality. rdar://problem/54619322 llvm-svn: 370126
* [preprocessor] Add an opportunity to retain excluded conditional blocksEvgeny Mankov2019-08-278-6/+194
| | | | | | | | | | | | | | It is handy for clang tooling, for instance, in source to source transformation. Reviewers: vpykhtin (Valery Pykhtin), erichkeane (Erich Keane) Subscribers: rsmith (Richard Smith), akyrtzi (Argyrios Kyrtzidis) Tags: #clang Differential Revision: https://reviews.llvm.org/D66597 llvm-svn: 370123
* ArrayRef'ized CompilerInvocation::CreateFromArgsDmitri Gribenko2019-08-278-25/+12
| | | | | | | | | | Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66797 llvm-svn: 370122
* [sanitizer_common] Close superfluous file descriptors in spawned processJulian Lettner2019-08-271-5/+23
| | | | | | | | | | | | | | Use attribute flag `POSIX_SPAWN_CLOEXEC_DEFAULT` in the call to `posix_spawn`. If this flag is set, then only file descriptors explicitly described by the file_actions argument are available in the spawned process; all of the other file descriptors are automatically closed in the spawned process. POSIX_SPAWN_CLOEXEC_DEFAULT is an Apple-specific extension. llvm-svn: 370121
* [dotest] Remove check for LLDB_TESTSUITE_FORCE_FINISHJonas Devlieghere2019-08-271-6/+0
| | | | llvm-svn: 370120
* [clang][Index][NFC] Move IndexDataConsumer default implementationJan Korous2019-08-272-26/+11
| | | | llvm-svn: 370116
* [Clang][Bundler] Fix for a hang when unbundling fat binarySergey Dmitriev2019-08-272-4/+10
| | | | | | | | clang-offload-bundler tool may hang under certain conditions when it extracts a subset of all available device bundles from the fat binary that is handled by the BinaryFileHandler. This patch fixes this problem. Differential Revision: https://reviews.llvm.org/D66598 llvm-svn: 370115
* [InstCombine] Disable some portions of foldGEPICmp for GEPs that return a ↵Craig Topper2019-08-272-11/+41
| | | | | | vector of pointers. Fix other portions. llvm-svn: 370114
* [RISCV] Implement RISCVRegisterInfo::getPointerRegClassLuis Marques2019-08-271-0/+6
| | | | | | | | Fixes bug 43041 Differential Revision: https://reviews.llvm.org/D66752 llvm-svn: 370113
* [Analysis] Improve EmitGEPOffset handling of vector GEPs with scalar indices.Craig Topper2019-08-272-0/+24
| | | | | | | This patch splats the scalar index if necessary before using it in any integer casts or other arithmetic. llvm-svn: 370112
* Fix asan-symbolize-bad-path.cpp on DarwinAlexander Richardson2019-08-271-1/+2
| | | | | | | | I accidentally made the CHECK line stricter when committing D65322. While it happens to work for Linux and FreeBSD, it broke on Darwin. This commit restores the previous behaviour. llvm-svn: 370110
* [libc++] Add yet another test for inverted character classesLouis Dionne2019-08-271-0/+3
| | | | | | | | This was reported as part of a bug report that ended up being a duplicate for r340609, but I'm adding the test case since it's ever so slightly different from what we had before. llvm-svn: 370109
* Diagnose _Bool as a C99 extension.Aaron Ballman2019-08-272-0/+6
| | | | llvm-svn: 370108
* Debug Info: Support for DW_AT_export_symbols for anonymous structsShafik Yaghmour2019-08-272-1/+17
| | | | | | | | | | | | | | | | | | | | This implements the DWARF 5 feature described in: http://dwarfstd.org/ShowIssue.php?issue=141212.1 To support recognizing anonymous structs: struct A { struct { // Anonymous struct int y; }; } a; This patch adds support in CGDebugInfo::CreateLimitedType(...) for this new flag and an accompanying test to verify this feature. Differential Revision: https://reviews.llvm.org/D66667 llvm-svn: 370107
* [Platform/Android] Read the adb server from an env variable if setNathan Lanza2019-08-271-1/+6
| | | | | | | | | | | | | | | Summary: The environment variable ANDROID_ADB_SERVER_PORT can be defined to have adbd litsen on a different port. Teach lldb how to understand this via simply checking the env var. Reviewers: xiaobai, clayborg Subscribers: srhines Differential Revision: https://reviews.llvm.org/D66689 llvm-svn: 370106
* Update two x86 datalayouts for r370083, looks like racing commitsReid Kleckner2019-08-272-2/+2
| | | | llvm-svn: 370105
* [GlobalISel] Replace hard coded dynamic alloca handling with G_DYN_STACKALLOC.Amara Emerson2019-08-278-58/+283
| | | | | | | | | | | This change moves the actual stack pointer manipulation into the legalizer, available to targets via lower(). The codegen is slightly different because we're using explicit masks instead of G_PTRMASK, and using G_SUB rather than adding a negative amount via G_GEP. Differential Revision: https://reviews.llvm.org/D66678 llvm-svn: 370104
* [clangd] Add a distinct highlighting for local variablesNathan Ridge2019-08-274-68/+76
| | | | | | | | | | | | | | | | | | Summary: It's useful to be able to distinguish local variables from namespace scope variables. Reviewers: hokein, jvikstrom Reviewed By: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66723 llvm-svn: 370103
* [Loads/SROA] Remove blatantly incorrect code and fix a bug revealed in the ↵Philip Reames2019-08-273-47/+13
| | | | | | | | | | | | | | | | process The code we had isSafeToLoadUnconditionally was blatantly wrong. This function takes a "Size" argument which is supposed to describe the span loaded from. Instead, the code use the size of the pointer passed (which may be unrelated!) and only checks that span. For any Size > LoadSize, this can and does lead to miscompiles. Worse, the generic code just a few lines above correctly handles the cases which *are* valid. So, let's delete said code. Removing this code revealed two issues: 1) As noted by jdoerfert the removed code incorrectly handled external globals. The test update in SROA is to stop testing incorrect behavior. 2) SROA was confusing bytes and bits, but this wasn't obvious as the Size parameter was being essentially ignored anyway. Fixed. Differential Revision: https://reviews.llvm.org/D66778 llvm-svn: 370102
* AMDGPU: Always emit amdgpu-flat-work-group-sizeMatt Arsenault2019-08-272-16/+29
| | | | | | | The backend default maximum should be the hardware maximum, so the frontend should set the implementation defined default maximum. llvm-svn: 370101
* Diagnose both _Complex and _Imaginary as C99 extensions.Aaron Ballman2019-08-276-16/+28
| | | | llvm-svn: 370100
* DAG: computeNumSignBits for MULMatt Arsenault2019-08-272-14/+17
| | | | | | | | | | Copied directly from the IR version. Most of the testcases I've added for this are somewhat problematic because they really end up testing the yet to be implemented version for MUL_I24/MUL_U24. llvm-svn: 370099
* AMDGPU: Add baseline test for num sign bits of mulMatt Arsenault2019-08-271-0/+168
| | | | llvm-svn: 370098
* [XCOFF][AIX] Generate symbol table entries with llvm-readobjJason Liu2019-08-276-28/+937
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch implements main entry and auxiliary entries of symbol table generation for llvm-readobj on AIX. The source code of aix_xcoff_xlc_test8.o (compile with xlc) is: -bash-4.2$ cat test8.c extern int i; extern int TestforXcoff; extern int fun(int i); static int static_i; char* p="abcd"; int fun1(int j) { static_i++; j++; j=j+*p; return j; } int main() { i++; fun(i); return fun1(i); } Patch provided by DiggerLin Differential Revision: https://reviews.llvm.org/D65240 llvm-svn: 370097
* Remove clang-tidy-vs from clang-tools-extra (PR41791)Alex Lorenz2019-08-2739-3507/+8
| | | | | | | | | | | | | | | | | | | | | | The clang-tidy-vs visual studio plugin in clang-tools-extra contains a security vulnerability in the YamlDotNet package [1]. I posted to cfe-dev [2], asking if there was anyone who was interested in updating the the plugin to address the vulnerability. Reid mentioned that Zach (the original committer), said that there's another plugin (Clang Power Tools) that provides clang-tidy support, with additional extra features, so it would be ok to remove clang-tidy-vs. This commit removes the plugin to address the security vulnerability, and adds a section to the release notes that mentions that the plugin was removed, and suggests to use Clang Power Tools. Fixes PR 41791. [1]: https://nvd.nist.gov/vuln/detail/CVE-2018-1000210 [2]: http://lists.llvm.org/pipermail/cfe-dev/2019-August/063196.html Differential Revision: https://reviews.llvm.org/D66813 llvm-svn: 370096
* Revert Autogenerate the shebang lines for tools/opt-viewerReid Kleckner2019-08-276-24/+7
| | | | | | | | | | This reverts r369486 (git commit 8d18384809957cc923752e10a86adab129e3df48) The opt-viewer tests don't pass after this change, and fixing them isn't trivial. opt-viewer.py imports optmap, which requires adjusting pythonpath, which is more work than I'm willing to do to fix forward. llvm-svn: 370095
* Add GWP-ASan fuzz target to compiler-rt/tools.Mitch Phillips2019-08-275-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: @eugenis to approve addition of //compiler-rt/tools. @pree-jackie please confirm that this WFY. D66494 introduced the GWP-ASan stack_trace_compressor_fuzzer. Building fuzz targets in compiler-rt is a new affair, and has some challenges: - If the host compiler doesn't have compiler-rt, the -fsanitize=fuzzer may not be able to link against `libclang_rt.fuzzer*`. - Things in compiler-rt generally aren't built when you want to build with sanitizers using `-DLLVM_USE_SANITIZER`. This tricky to work around, so we create the new tools directory so that we can build fuzz targets with sanitizers. This has the added bonus of fixing the problem above as well, as we can now just guard the fuzz target build to only be done with `-DLLVM_USE_SANITIZE_COVERAGE=On`. Reviewers: eugenis, pree-jackie Reviewed By: eugenis, pree-jackie Subscribers: dberris, mgorny, #sanitizers, llvm-commits, eugenis, pree-jackie, lebedev.ri, vitalybuka, morehouse Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D66776 llvm-svn: 370094
* [driver][xray] fix the macOS support checker by supporting -macosAlex Lorenz2019-08-272-1/+5
| | | | | | | | | | | triple in addition to -darwin The previous check incorrectly checked for macOS support by allowing -darwin triples only, and -macos triple was not supported. Differential Revision: https://reviews.llvm.org/D61758 llvm-svn: 370093
* [ORCv2] - New Speculate Query ImplementationPraveen Velliengiri2019-08-275-91/+383
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch introduces, SequenceBBQuery - new heuristic to find likely next callable functions it tries to find the blocks with calls in order of execution sequence of Blocks. It still uses BlockFrequencyAnalysis to find high frequency blocks. For a handful of hottest blocks (plan to customize), the algorithm traverse and discovered the caller blocks along the way to Entry Basic Block and Exit Basic Block. It uses Block Hint, to stop traversing the already visited blocks in both direction. It implicitly assumes that once the block is visited during discovering entry or exit nodes, revisiting them again does not add much. It also branch probability info (cached result) to traverse only hot edges (planned to customize) from hot blocks. Without BPI, the algorithm mostly return's all the blocks in the CFG with calls. It also changes the heuristic queries, so they don't maintain states. Hence it is safe to call from multiple threads. It also implements, new instrumentation to avoid jumping into JIT on every call to the function with the help _orc_speculate.decision.block and _orc_speculate.block. "Speculator Registration Mechanism is also changed" - kudos to @lhames Open to review, mostly looking to change implementation of SequeceBBQuery heuristics with good data structure choices. Reviewers: lhames, dblaikie Reviewed By: lhames Subscribers: mgorny, hiraditya, mgrang, llvm-commits, lhames Tags: #speculative_compilation_in_orc, #llvm Differential Revision: https://reviews.llvm.org/D66399 llvm-svn: 370092
* [Tblgen][MCA] Add the ability to mark groups as LoadQueue and StoreQueue. NFCIAndrea Di Biagio2019-08-272-6/+6
| | | | | | | | | | | | | | | | Before this patch, users were not allowed to optionally mark processor resource groups as load/store queues. That is because tablegen class MemoryQueue was originally declared as expecting a ProcResource template argument (instead of a more generic ProcResourceKind). That was an oversight, since the original intention from D54957 was to let user mark any processor resource as either load/store queue. This patch adds the ability to use processor resource groups in MemoryQueue definitions. This is not a user visible change. Differential Revision: https://reviews.llvm.org/D66810 llvm-svn: 370091
* [dotest] Remove results portJonas Devlieghere2019-08-278-72/+9
| | | | | | | | | | The results port was used by dosep.py to deal with test results coming form different processes. With dosep.py gone, I don't think we need this any longer. Differential revision: https://reviews.llvm.org/D66811 llvm-svn: 370090
* AMDGPU: Add amdgpu-32bit-address-high-bits to MIR serializationMatt Arsenault2019-08-274-2/+22
| | | | llvm-svn: 370089
* [JITLink] Fix bogus TimerGroup constructor call.Lang Hames2019-08-271-3/+2
| | | | llvm-svn: 370088
* Move EH spec mismatches under -fms-compatibilityReid Kleckner2019-08-275-51/+52
| | | | | | | | | | | | | | | | | | | | | -fms-extensions is intended to enable conforming language extensions and -fms-compatibility is intended to language rule relaxations, so a user could plausibly compile with -fno-ms-compatibility on Windows while still using dllexport, for example. This exception specification validation behavior has been handled as a warning since before -fms-compatibility was added in 2011. I think it's just an oversight that it hasn't been moved yet. This will help users find conformance issues in their code such as those found in _com_ptr_t as described in https://llvm.org/PR42842. Reviewers: hans Subscribers: STL_MSFT, cfe-commits Differential Revision: https://reviews.llvm.org/D66770 llvm-svn: 370087
* AMDGPU: Fix crash from inconsistent register types for v3i16/v3f16Matt Arsenault2019-08-272-3/+92
| | | | | | | This is something of a workaround since computeRegisterProperties seems to be doing the wrong thing. llvm-svn: 370086
* [ORC] NFC remove unimplemented queryPraveen Velliengiri2019-08-271-7/+0
| | | | | | | | | | | | | | | | Summary: CFGWalk Query is unimplemented for valid reasons. But the declaration got included in commit file. Reviewers: lhames, dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66289 llvm-svn: 370085
* Recommit "[GlobalISel] Import patterns containing INSERT_SUBREG"Jessica Paquette2019-08-2710-39/+407
| | | | | | | | | | I thought `llvm::sort` was stable for some reason but it's not. Use `llvm::stable_sort` in `CodeGenTarget::getSuperRegForSubReg`. Original patch: https://reviews.llvm.org/D66498 llvm-svn: 370084
* Change the X86 datalayout to add three address spaces for 32 bit signed,Amy Huang2019-08-27520-538/+550
| | | | | | 32 bit unsigned, and 64 bit pointers. llvm-svn: 370083
* Use FileEntryRef for PPCallbacks::HasIncludeAlex Lorenz2019-08-276-7/+41
| | | | | | | | This fixes the issue where a filename dependendency was missing if the file that was referenced with __has_include() was accessed through a symlink in an earlier run, if the file manager was reused between runs. llvm-svn: 370081
* Revert "[GlobalISel] Import patterns containing INSERT_SUBREG"Jessica Paquette2019-08-2710-407/+39
| | | | | | | | | | When EXPENSIVE_CHECKS are enabled, GlobalISelEmitterSubreg.td doesn't get stable output. Reverting while I debug it. See: https://reviews.llvm.org/D66498 llvm-svn: 370080
* [X86] Remove encoding information from the TAILJMP instructions that are ↵Craig Topper2019-08-272-45/+87
| | | | | | | | | | | | | | lowered by MCInstLowering. Fix LowerPATCHABLE_TAIL_CALL to also convert them to regular JMP/JCC instructions There are 5 instructions here that are converted from TAILJMP opcodes to regular JMP/JCC opcodes during MCInstLowering. So normally there encoding information isn't used. The exception being when XRay wraps them in PATCHABLE_TAIL_CALL. For the ones that weren't already handled in MCInstLowering, add handling for those and remove their encoding information. This patch fixes PATCHABLE_TAIL_CALL to do the same opcode conversion as the regular lowering patch. Then removes the encoding information. Differential Revision: https://reviews.llvm.org/D66561 llvm-svn: 370079
OpenPOWER on IntegriCloud