summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [Demangle] Add a few more options to the microsoft demanglerMartin Storsjo2019-10-156-21/+86
| | | | | | | | | | | | | | | This corresponds to commonly used options to UnDecorateSymbolName within llvm. Add them as hidden options in llvm-undname. MS undname.exe takes numeric flags, corresponding to the UNDNAME_* constants, but instead of hardcoding in mappings for those numbers, just add textual options instead, as it the use of them here is primarily intended for testing. Differential Revision: https://reviews.llvm.org/D68917 llvm-svn: 374865
* [Format] Add machine-readable SPDX license ID to clang-format.elSam McCall2019-10-151-0/+1
| | | | llvm-svn: 374864
* Fix TestDisassemble_VST1_64Pavel Labath2019-10-151-7/+7
| | | | | | | | - use a full triple instead of just the architecture (makes the test pass on non-apple hosts) - skip the test if the ARM llvm target is not built llvm-svn: 374863
* [X86] Don't check for VBROADCAST_LOAD being a user of the source of a ↵Craig Topper2019-10-151-3/+1
| | | | | | | | | | | | | | | | | | VBROADCAST when trying to share broadcasts. The only things VBROADCAST_LOAD uses is an address and a chain node. It has no vector inputs. So if its a user of the source of another broadcast that could only mean one of two things. The other broadcast is broadcasting the address of the broadcast_load. Or the source is a load and the use we're seeing is the chain result from that load. Neither of these cases make sense to combine here. This issue was reported post-commit r373871. Test case has not been reduced yet. llvm-svn: 374862
* Revert [SROA] Reuse existing lifetime markers if possibleDavid L. Jones2019-10-152-77/+2
| | | | | | | | This reverts r374692 (git commit 92694eba933ef4ea0b1b6377809ff266df37d61b) Reproducer sent to commit thread on llvm-commits. llvm-svn: 374859
* [RISCV] Support fast calling conventionShiva Chen2019-10-153-2/+223
| | | | | | | | | | | | LLVM may annotate the function with fastcc if there has only one caller and there're no other caller out of the module and the function is not naked or contain variable arguments. The fastcc functions could pass the arguments by the caller saved registers. Differential Revision: https://reviews.llvm.org/D68559 llvm-svn: 374857
* [WebAssembly] Trapping fptoint builtins and intrinsicsThomas Lively2019-10-156-0/+186
| | | | | | | | | | | | | | | | | | | | | Summary: The WebAssembly backend lowers fptoint instructions to a code sequence that checks for overflow to avoid traps because fptoint is supposed to be speculatable. These new builtins and intrinsics give users a way to depend on the trapping semantics of the underlying instructions and avoid the extra code generated normally. Patch by coffee and tlively. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D68902 llvm-svn: 374856
* [libc++][test] Use <version> to get config on MSVCCasey Carter2019-10-153-6/+6
| | | | | | | | ...instead of `<ciso646>`. Also includes some NFC comment changes. llvm-svn: 374854
* [lldb-server/android] Show more processes by relaxing some checksWalter Erquinigo2019-10-151-34/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default `platform process list` only shows the processes of the current user that lldb-server can parse. There are several problems: - apk programs don't have an executable file. They instead use a package name as identifier. We should show them instead. - each apk also runs under a different user. That's how android works - because of the user permission, some files like /proc/<pid>/{environ,exe} can't be read. This results in a very small process list. This is a local run on my machine ``` (lldb) platform process list 2 matching processes were found on "remote-android" PID PARENT USER TRIPLE NAME ====== ====== ========== ======================== ============================ 23291 3177 aarch64-unknown-linux-android sh 23301 23291 aarch64-unknown-linux-android lldb-server ``` However, I have 700 processes running at this time. By implementing a few fallbacks for android, I've expanded this list to 202, filtering out kernel processes, which would presumably appear in this list if the device was rooted. ``` (lldb) platform process list 202 matching processes were found on "remote-android" PID PARENT USER TRIPLE NAME ====== ====== ========== ======================== ============================ ... 12647 3208 aarch64-unknown-linux-android sh 12649 12647 aarch64-unknown-linux-android lldb-server 12653 982 com.samsung.faceservice 13185 982 com.samsung.vvm 15899 982 com.samsung.android.spay 16220 982 com.sec.spp.push 17126 982 com.sec.spp.push:RemoteDlcProcess 19772 983 com.android.chrome 20209 982 com.samsung.cmh:CMH 20380 982 com.google.android.inputmethod.latin 20879 982 com.samsung.android.oneconnect:Receiver 21212 983 com.tencent.mm 24459 1 aarch64-unknown-linux-android wpa_supplicant 25974 982 com.samsung.android.contacts 26293 982 com.samsung.android.messaging 28714 982 com.samsung.android.dialer 31605 982 com.samsung.android.MtpApplication 32256 982 com.bezobidny ``` Something to notice is that the architecture is unkonwn for all apks. And that's fine, because run-as would be required to gather this information and that would make this entire functionality massively slow. There are still several improvements to make here, like displaying actual user names, which I'll try to do in a following diff. Note: Regarding overall apk debugging support from lldb. I'm planning on having lldb spawn lldb-server by itself with the correct user, so that everything works well. The initial lldb-server used for connecting to the remote platform can be reused for such purpose. Furthermore, eventually lldb could also launch that initial lldb-server on its own. Differential Revision: D68289 llvm-svn: 374853
* Revert "fix"Walter Erquinigo2019-10-141-45/+34
| | | | | | This reverts commit d8af64c9a0228301f6fd0e1c841e4abe0b6f4801. llvm-svn: 374852
* Revert [InstCombine] fold a shifted bool zext to a selectSanjay Patel2019-10-143-10/+8
| | | | | | This reverts r374828 (git commit 1f40f15d54aac06421448b6de131231d2d78bc75) due to bot breakage llvm-svn: 374851
* [MemorySSA] Update for partial unswitch.Alina Sbirlea2019-10-1411-0/+135
| | | | | | | | Update MSSA for blocks cloned when doing partial unswitching. Enable additional testing with MSSA. Resolves PR43641. llvm-svn: 374850
* [X86] Teach X86MCodeEmitter to properly encode zmm16-zmm31 as index register ↵Craig Topper2019-10-142-10/+13
| | | | | | | | | | | | to vgatherpf/vscatterpf. We need to encode bit 4 into the EVEX.V' bit. We do this right for regular gather/scatter which use either MRMSrcMem or MRMDestMem formats. The prefetches use MRM*m formats. Fixes an issue recently added to PR36202. llvm-svn: 374849
* [X86] Add encoding tests for avx512pf vgatherpf/vscatterpf instructions.Craig Topper2019-10-141-0/+65
| | | | llvm-svn: 374848
* [lit] Add argument check: --timeout must be non-negative integerJulian Lettner2019-10-141-7/+13
| | | | llvm-svn: 374847
* fixWalter Erquinigo2019-10-141-34/+45
| | | | llvm-svn: 374846
* Revert "Dead Virtual Function Elimination"Jorge Gorbe Moya2019-10-1434-1428/+83
| | | | | | This reverts commit 9f6a873268e1ad9855873d9d8007086c0d01cf4f. llvm-svn: 374844
* Temporarily Revert [Modules][PCH] Hash input files contentEric Christopher2019-10-1412-247/+29
| | | | | | | | as it's breaking a few bots. This reverts r374841 (git commit 2a1386c81de504b5bda44fbecf3f7b4cdfd748fc) llvm-svn: 374842
* [Modules][PCH] Hash input files contentBruno Cardoso Lopes2019-10-1412-29/+247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When files often get touched during builds, the mtime based validation leads to different problems in implicit modules builds, even when the content doesn't actually change: - Modules only: module invalidation due to out of date files. Usually causing rebuild traffic. - Modules + PCH: build failures because clang cannot rebuild a module if it comes from building a PCH. - PCH: build failures because clang cannot rebuild a PCH in case one of the input headers has different mtime. This patch proposes hashing the content of input files (headers and module maps), which is performed during serialization time. When looking at input files for validation, clang only computes the hash in case there's a mtime mismatch. I've tested a couple of different hash algorithms availble in LLVM in face of building modules+pch for `#import <Cocoa/Cocoa.h>`: - `hash_code`: performace diff within the noise, total module cache increased by 0.07%. - `SHA1`: 5% slowdown. Haven't done real size measurements, but it'd be BLOCK_ID+20 bytes per input file, instead of BLOCK_ID+8 bytes from `hash_code`. - `MD5`: 3% slowdown. Like above, but BLOCK_ID+16 bytes per input file. Given the numbers above, the patch uses `hash_code`. The patch also improves invalidation error msgs to point out which type of problem the user is facing: "mtime", "size" or "content". rdar://problem/29320105 Reviewers: dexonsmith, arphaman, rsmith, aprantl Subscribers: jkorous, cfe-commits, ributzka Tags: #clang Differential Revision: https://reviews.llvm.org/D67249 llvm-svn: 374841
* Add -fno-experimental-pass-manager to make clear which pass managerEric Christopher2019-10-141-1/+1
| | | | | | we're running and to make flipping the default not regress testing. llvm-svn: 374840
* In the new pass manager use PTO.LoopUnrolling to determine when and howEric Christopher2019-10-142-6/+18
| | | | | | | | | | | | | | | | | | | we will unroll loops. Also comment a few occasions where we need to know whether or not we're forcing the unwinder or not. The default before and after this patch is for LoopUnroll to be enabled, and for it to use a cost model to determine whether to unroll the loop (`OnlyWhenForced = false`). Before this patch, disabling loop unroll would not run the LoopUnroll pass. After this patch, the LoopUnroll pass is being run, but it restricts unrolling to only the loops marked by a pragma (`OnlyWhenForced = true`). In addition, this patch disables the UnrollAndJam pass when disabling unrolling. Testcase is in clang because it's controlling how the loop optimizer is being set up and there's no other way to trigger the behavior. llvm-svn: 374838
* [clang] add requirements to -Wa,-W test cases.Jian Cai2019-10-141-0/+3
| | | | | | Include linux as a test requirement. llvm-svn: 374837
* [test] Fix test failureEli Friedman2019-10-141-8/+6
| | | | | | | | | | | | | | The version mismatch symbol is version 9 on 32 bit android. Since this test isn't actually testing any android specific functionality, we force the target triple to x86_64-unknown-unknown in order to have a consistent version number. It seems the test was already trying to do this, just not doing it right Patch by Christopher Tetrault Differential Revision: https://reviews.llvm.org/D68882 llvm-svn: 374836
* [Tests] Add a SCEV analysis test for llvm.widenable.conditionPhilip Reames2019-10-141-0/+45
| | | | | | Mostly because we don't appear to have one and a prototype patch I just saw would have broken the example committed. llvm-svn: 374835
* Add support to -Wa,-W in clangJian Cai2019-10-142-1/+15
| | | | | | | | | | | | | | | | | | | | Summary: Currently clang does not support -Wa,-W, which suppresses warning messages in GNU assembler. Add this option for gcc compatibility. https://bugs.llvm.org/show_bug.cgi?id=43651. Reland with differential information. Reviewers: bcain Reviewed By: bcain Subscribers: george.burgess.iv, gbiv, llozano, manojgupta, nickdesaulniers, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68884 llvm-svn: 374834
* Revert "Add support to -Wa,-W in clang"Jian Cai2019-10-142-15/+1
| | | | | | This reverts commit e72eeca43b9577be2aae55f7603febbf223a6ab3. llvm-svn: 374833
* [ARM][AsmParser] handles offset expression in parenthesesJian Cai2019-10-142-5/+27
| | | | | | | | | | | | | | | Summary: Integrated assembler does not accept offset expressions surrounded by parenthesis. Handle this case for GAS compability. https://bugs.llvm.org/show_bug.cgi?id=43631 Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68764 llvm-svn: 374832
* DebugInfo: Remove unnecessary/mistaken inclusion of Bitcode/BitcodeAnalyzer.hDavid Blaikie2019-10-142-4/+0
| | | | | | | | | | | | | | | | Introduced in r374582, Michael Spencer pointed out this broke the modules build due to a missing tblgen dependency on llvm/IR/Attributes.inc. Michael fixed the dependency in r374827. So this removes the inclusion and the new dependency (effectively reverting r374827 and including the alternative fix of removing rather than supporting the new dependency). Thanks for the quick fix/notice, Michael! llvm-svn: 374831
* [update_mir_test_checks] Handle MI flags properlyRoman Tereshin2019-10-1417-189/+192
| | | | | | | | | | | | | | previously we would generate literal check lines w/ no reg-exps for vregs as MI flags (nsw, ninf, etc.) won't be recognized as a part of MI. Fixing that. Includes updating the MIR tests that suffered from the problem. Reviewed By: bogner Differential Revision: https://reviews.llvm.org/D68905 llvm-svn: 374829
* [InstCombine] fold a shifted bool zext to a selectSanjay Patel2019-10-143-8/+10
| | | | | | | | | | | | | | | For a constant shift amount, add the following fold. shl (zext (i1 X)), ShAmt --> select (X, 1 << ShAmt, 0) https://rise4fun.com/Alive/IZ9 Fixes PR42257. Based on original patch by @zvi (Zvi Rackover) Differential Revision: https://reviews.llvm.org/D63382 llvm-svn: 374828
* [Modules Build] Add missing dependency.Michael J. Spencer2019-10-141-0/+3
| | | | | | A previous commit made libLLVMDebugInfoDWARF depend on the LLVM_Bitcode module which depends on the LLVM_intrinsic_gen module which depends on "llvm/IR/Attributes.inc" which is a generated header not depended on by libLLVMDebugInfo. Add that dependency. llvm-svn: 374827
* PR43080: Do not build context-sensitive expressions during name classification.Richard Smith2019-10-1414-178/+417
| | | | | | | | | | | | | | | | | | | | | | | Summary: We don't know what context to use until the classification result is consumed by the parser, which could happen in a different semantic context. So don't build the expression that results from name classification until we get to that point and can handle it properly. This covers everything except C++ implicit class member access, which is a little awkward to handle properly in the face of the protected member access check. But it at least fixes all the currently-filed instances of PR43080. Reviewers: efriedma Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68896 llvm-svn: 374826
* build fix for SBInstruction.Lawrence D'Anna2019-10-143-2/+4
| | | | | | | | | | | | | | oops! I cherry-picked rL374820 thinking it was completely independent of D68737, but it wasn't. It makes an incidental use of SBFile::GetFile, which is introduced there, so I broke the build. The docs say you can commit without review for "obvious". I think this qualifies. If this kind of fix isn't considered obvious, let me know and I'll revert instead. Fixes: rL374820 llvm-svn: 374825
* [lit] Create Run object later and only when it is neededJulian Lettner2019-10-141-30/+31
| | | | | | | | Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68843 llvm-svn: 374823
* Add support to -Wa,-W in clangJian Cai2019-10-142-1/+15
| | | | | | | | Currently clang does not support -Wa,-W, which suppresses warning messages in GNU assembler. Add this option for gcc compatibility. https://bugs.llvm.org/show_bug.cgi?id=43651 llvm-svn: 374822
* [NFC] Fix ClangScanDeps/static-analyzer.c test on WindowsJan Korous2019-10-141-3/+3
| | | | | | Follow-up to c5d14b5c6fa llvm-svn: 374821
* remove FILE* bindings from SBInstruction.Lawrence D'Anna2019-10-149-21/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch replaces the FILE* python bindings for SBInstruction and SBInstructionList and replaces them with the new, safe SBFile and FileSP bindings. I also re-enable `Test_Disassemble_VST1_64`, because now we can use the file bindings as an additional test of the disassembler, and we can use the disassembler test as a test of the file bindings. The bugs referred to in the comments appear to have been fixed. The radar is closed now and the bugzilla bug does not reproduce with the instructions given. Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68890 llvm-svn: 374820
* [OPNEMP]Allow num_tasks clause in combined task-based directives.Alexey Bataev2019-10-149-22/+49
| | | | | | | The expression of the num_tasks clause must be captured in the combined task-based directives, like 'parallel master taskloop' directive. llvm-svn: 374819
* [InstCombine] add tests for select/shift transforms; NFCSanjay Patel2019-10-142-0/+59
| | | | | | A transform proposal for the shift form is in D63382. llvm-svn: 374818
* uint32_t options -> File::OpenOptions optionsLawrence D'Anna2019-10-1424-73/+111
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch re-types everywhere that passes a File::OpenOptions as a uint32_t so it actually uses File::OpenOptions. It also converts some OpenOptions related functions that fail by returning 0 or NULL into llvm::Expected split off from https://reviews.llvm.org/D68737 Reviewers: JDevlieghere, jasonmolenda, labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68853 llvm-svn: 374817
* remove FILE* usage from ReportEventState() and HandleProcessEvent()Lawrence D'Anna2019-10-149-21/+93
| | | | | | | | | | | | | | | | | | | Summary: This patch adds FileSP and SBFile versions of the API methods ReportEventState and HandleProcessEvent. It points the SWIG wrappers at these instead of the ones that use FILE* streams. Reviewers: JDevlieghere, jasonmolenda, labath, jingham Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D68546 llvm-svn: 374816
* [clang-scan-deps] Support for clang --analyze in clang-scan-depsJan Korous2019-10-1410-9/+48
| | | | | | | | | | | | | | | The goal is to have 100% fidelity in clang-scan-deps behavior when --analyze is present in compilation command. At the same time I don't want to break clang-tidy which expects __static_analyzer__ macro defined as built-in. I introduce new cc1 options (-setup-static-analyzer) that controls the macro definition and is conditionally set in driver. Differential Revision: https://reviews.llvm.org/D68093 llvm-svn: 374815
* [lit] Extend internal diff to support -UJoel E. Denny2019-10-146-6/+142
| | | | | | | | | | | | | | | | | | | | | | When using lit's internal shell, RUN lines like the following accidentally execute an external `diff` instead of lit's internal `diff`: ``` # RUN: program | diff -U1 file - ``` Such cases exist now, in `clang/test/Analysis` for example. We are preparing patches to ensure lit's internal `diff` is called in such cases, which will then fail because lit's internal `diff` doesn't recognize `-U` as a command-line option. This patch adds `-U` support. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D68668 llvm-svn: 374814
* [Tests] Add a test demonstrating a miscompile in the off-by-default ↵Philip Reames2019-10-141-0/+75
| | | | | | | | | | loop-pred transform Credit goes to Evgeny Brevnov for figuring out the problematic case. Fuzzing probably also found it (lots of failures), but due to some silly infrastructure problems I hadn't gotten to the results before Evgeny hand reduced it from a benchmark. llvm-svn: 374812
* [LoopIdiom] BCmp: loop exit count must not be wider than size_t that `bcmp` ↵Roman Lebedev2019-10-142-0/+65
| | | | | | | | | | | | takes As reported by Joerg Sonnenberger in IRC, for 32-bit systems, where pointer and size_t are 32-bit, if you use 64-bit-wide variable in the loop, you could end up with loop exit count being of the type wider than the size_t. Now, i'm not sure if we can produce `bcmp` from that (just truncate?), but we certainly should not assert/miscompile. llvm-svn: 374811
* [OPNEMP]Allow grainsize clause in combined task-based directives.Alexey Bataev2019-10-148-22/+129
| | | | | | | The expression of the grainsize clause must be captured in the combined task-based directives, like 'parallel master taskloop' directive. llvm-svn: 374810
* [ASan] Fix IRTests/InstructionsTest.UnaryOperatorCameron McInally2019-10-141-0/+1
| | | | | | Fix ASan regression from r374782. llvm-svn: 374808
* [Tests] Add a few more tests for idioms with FP induction variablesPhilip Reames2019-10-141-0/+231
| | | | llvm-svn: 374807
* [libc++][test] Portability fix for std::any testsCasey Carter2019-10-141-2/+2
| | | | | | Ensure that `large_tracked_t` defined in `any_helpers.h` is in fact too large to fit in `std::any`'s small object buffer. llvm-svn: 374806
* [clang][IFS][test] Fixing lit test breakages on macOS due to r374798Puyan Lotfi2019-10-142-3/+3
| | | | | | | Adding the quotes breaks tests because on Darwin the name mangling is prefixed with an underscore. llvm-svn: 374805
OpenPOWER on IntegriCloud