- Jul 11, 2020
-
-
Nathan James authored
This reverts commit 4abdcdb4.
-
Nathan James authored
-
Nathan James authored
Reland b9306fd0 after fixing the issue causing mac builds to fail unittests. Following on from D77085, I was never happy with the passing a mapping to the option get/store functions. This patch addresses this by using explicit specializations to handle the serializing and deserializing of enum options. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D82188
-
Johannes Doerfert authored
MSVC throws an error if you use "too many" if-else in a row: `Frontend/OpenMP/OMPKinds.def(570): fatal error C1061: compiler limit: blocks nested too deeply` We work around it now... -
Mehdi Amini authored
This fixes a compiler warning.
-
Johannes Doerfert authored
In non-SPMD mode we create a state machine like code to identify the parallel region the GPU worker threads should execute next. The identification uses the parallel region function pointer as that allows it to work even if the kernel (=target region) and the parallel region are in separate TUs. However, taking the address of a function comes with various downsides. With this patch we will identify the most common situation and replace the function pointer use with a dummy global symbol (for identification purposes only). That means, if the parallel region is only called from a single target region (or kernel), we do not use the function pointer of the parallel region to identify it but a new global symbol. Fixes PR46450. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D83271
-
Johannes Doerfert authored
The module slice describes which functions we can analyze and transform while working on an SCC as part of the CGSCC OpenMPOpt pass. So far, we simply restricted it to the SCC. In a follow up we will need to have a bigger scope which is why this patch introduces a proper identification of the module slice. In short, everything that has a transitive reference to a function in the SCC or is transitively referenced by one is fair game. Reviewed By: sstefan1 Differential Revision: https://reviews.llvm.org/D83270
-
Johannes Doerfert authored
We now identify GPU kernels, that is entry points into the GPU code. These kernels (can) correspond to OpenMP target regions. With this patch we identify and on request print them via remarks. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D83269
-
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Johannes Doerfert authored
There are various runtime calls in the device runtime with unused, or always fixed, arguments. This is bad for all sorts of reasons. Clean up two before as we match them in OpenMPOpt now. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D83268
-
Eric Christopher authored
-
Johannes Doerfert authored
The old way worked to some degree for C++-mode but in C mode we actually tried to introduce variants of macros (e.g., isinf). To make both modes work reliably we get rid of those extra variants and directly use NVIDIA intrinsics in the complex implementation. While this has to be revisited as we add other GPU targets which want to reuse the code, it should be fine for now. Reviewed By: tra, JonChesterfield, yaxunl Differential Revision: https://reviews.llvm.org/D83591
-
Jonas Devlieghere authored
Rather than trying to find the yaml2obj from dotest we should pass it in like we do for dsymutil and FileCheck.
-
Yaxun (Sam) Liu authored
Do not detect device library by default in rocm detector. Only detect device library in Rocm and HIP toolchain. Separate detection of HIP runtime and Rocm device library. Detect rocm path by version file in host toolchains. Also added detecting rocm version and printing rocm installation path and version with -v. Fixed include path and device library detection for ROCm 3.5. Added --hip-version option. Renamed --hip-device-lib-path to --rocm-device-lib-path. Fixed default value for -fhip-new-launch-api. Added default -std option for HIP. Differential Revision: https://reviews.llvm.org/D82930
-
Wang, Pengfei authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D83534
-
Jinsong Ji authored
P9 is the only one with InstrSchedModel, but we may have more in the future, we should not hardcoded it to P9, check hasInstrSchedModel instead. Reviewed By: hfinkel Differential Revision: https://reviews.llvm.org/D83590
-
Ben Shi authored
Reviewed By: lenary, MaskRay Differential Revision: https://reviews.llvm.org/D83159
-
Vy Nguyen authored
Summary: This helps avoiding hacks downstream. Reviewers: shafik Subscribers: martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83529
-
Thomas Lively authored
In BUILD_VECTOR lowering, we used to generally prefer using splats over v128.const instructions because v128.const has a very large encoding. However, in d5b7a4e2 we switched to preferring consts because they are expected to be more efficient in engines. This patch updates the ISel patterns to match this current preference. Differential Revision: https://reviews.llvm.org/D83581
-
Valentin Clement authored
-
Mauricio Sifontes authored
- Create a pass that generates bugs based on trivially defined behavior for the purpose of testing the MLIR Reduce Tool. - Implement the functionality inside the pass to crash mlir-opt in the presence of an operation with the name "crashOp". - Register the pass as a test pass in the mlir-opt tool. Reviewed by: jpienaar Differential Revision: https://reviews.llvm.org/D83422
-
Akira Hatanaka authored
-
sstefan1 authored
This reverts commit 1d542f0c. `recollectUses()` is added to prevent looking at dead uses after Attributor run. This is the first and most basic ICV Tracking implementation. For this first version, we only support deduplication within the same BB. Reviewers: jdoerfert, JonChesterfield, hamax97, jhuber6, uenoku, baziotis, lebedev.ri Differential Revision: https://reviews.llvm.org/D81788
-
Akira Hatanaka authored
thunk's return value slot directly when the return type is an aggregate instead of doing so via a temporary This fixes PR45997 (https://bugs.llvm.org/show_bug.cgi?id=45997), which is caused by a bug that has existed since we started passing and returning C++ structs with ObjC strong pointer members (see https://reviews.llvm.org/D44908) or structs annotated with trivial_abi directly. rdar://problem/63740936 Differential Revision: https://reviews.llvm.org/D82513
-
Sanjay Patel authored
-
Adrian Prantl authored
This fixes a compile error when building for an arm64 host. Differential Revision: https://reviews.llvm.org/D83582
-
Valentin Clement authored
Summary: Diff D83176 moved the last piece of code from OMPConstants.cpp and now this file was only useful to include the tablegen generated file. This patch replace OMPConstants.cpp with OMP.cpp generated by tablegen. Reviewers: sstefan1, jdoerfert, jdenny Reviewed By: sstefan1 Subscribers: mgorny, yaxunl, hiraditya, guansong, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83583
-
Johannes Doerfert authored
Summary: We carried a lot of unused and untested code in the device runtime. Among other reasons, we are planning major rewrites for which reduced size is going to help a lot. The number of code lines reduced by 14%! Before: ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- CUDA 13 489 841 2454 C/C++ Header 14 322 493 1377 C 12 117 124 559 CMake 4 64 64 262 C++ 1 6 6 39 ------------------------------------------------------------------------------- SUM: 44 998 1528 4691 ------------------------------------------------------------------------------- After: ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- CUDA 13 366 733 1879 C/C++ Header 14 317 484 1293 C 12 117 124 559 CMake 4 64 64 262 C++ 1 6 6 39 ------------------------------------------------------------------------------- SUM: 44 870 1411 4032 ------------------------------------------------------------------------------- Reviewers: hfinkel, jhuber6, fghanim, JonChesterfield, grokos, AndreyChurbanov, ye-luo, tianshilei1992, ggeorgakoudis, Hahnfeld, ABataev, hbae, ronlieb, gregrodgers Subscribers: jvesely, yaxunl, bollu, guansong, jfb, sstefan1, aaron.ballman, openmp-commits, cfe-commits Tags: #clang, #openmp Differential Revision: https://reviews.llvm.org/D83349
-
Zequan Wu authored
Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83597
-
Walter Erquinigo authored
This reverts commit 881af6eb. Revert "[lldb-vscode] Add Compile Unit List to Modules View" This reverts commit 03ef6103. Revert "[lldb-vscode] Add Support for Module Event" This reverts commit f7f80159. The debian buildbot has reported issues with the modules test. http://lab.llvm.org:8011/builders/lldb-x86_64-debian/builds/13767/steps/test/logs/stdio Reverting it for now.
-
Teresa Johnson authored
Summary: eraseBlock is trying to erase all probability info for the given BB. This info is stored in a DenseMap organized like so: using Edge = std::pair<const BasicBlock *, unsigned>; DenseMap<Edge, BranchProbability> Probs; where the unsigned in the Edge key is the successor id. It was walking through every single map entry, checking if the BB in the key's pair matched the given BB. Much more efficient is to do what another method (getEdgeProbability) was already doing, which is to walk the successors of the BB, and simply do a map lookup on the key formed from each <BB, successor id> pair. Doing this dropped the overall compile time for a file containing a very large function by around 32%. Reviewers: davidxl, xur Subscribers: llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D83596
-
Johannes Doerfert authored
Due to recent changes we cannot use OpenMP in CUDA files anymore (PR45533) as the math handling of CUDA is different when _OPENMP is defined. We actually want this different behavior only if we are offloading with OpenMP to NVIDIA, thus generating NVPTX. With this patch we do not interfere with the CUDA math handling except if we are in NVPTX offloading mode, as indicated by the presence of __OPENMP_NVPTX__. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D78155
-
Walter Erquinigo authored
For some reason this works on the original author's machine, but not on my. So I'm using a safer approach of using an unstripped dynamic library to place breakpoints on. The author was placing a breakpoint on the main symbol of a stripped library and for some reason it worked on their machine, but it shouldn't have... Offender diff: D82477
-
Yifan Shen authored
Summary: User can expand and check compile unit list for the modules that have debug info. Reviewers: wallace, clayborg Reviewed By: clayborg Subscribers: aprantl, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D83072
-
Yifan Shen authored
Summary: Whenever a module is created, removed or changed, lldb-vscode is now sending an event that can be interpreted by the IDE so that modules can be rendered in the IDE, like the tree view in this screenshot {F12229758} Reviewers: wallace, clayborg, kusmour, aadsm Reviewed By: clayborg Subscribers: cfe-commits, labath, lldb-commits Tags: #lldb, #clang Differential Revision: https://reviews.llvm.org/D82477 -
Gui Andrade authored
Looks like RDP isn't present on some of LLVM's buildbot machines
-
Alexandre Ganea authored
This reverts commit add59ecb and 41d2813a.
-
cgyurgyik authored
Reviewers: sivachandra Reviewed By: sivachandra Subscribers: mgorny, tschuett, ecnelises, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D83589
-
David Blaikie authored
This risks ODR violations in inline functions that call these functions (if they remain static) & otherwise just causes some object size increase, potentially, by these functions not being deduplicated by the linker.
-