- Jul 15, 2020
-
-
Valentin Clement authored
Summary: This patch introduce the parser for OpenACC 3.0 in Flang. It uses the same TableGen mechanism than OpenMP. Reviewers: nvdatian, sscalpone, tskeith, klausler, ichoyjx, jdoerfert, DavidTruby Reviewed By: klausler Subscribers: MaskRay, SouraVX, mgorny, hiraditya, jfb, sstefan1, llvm-commits Tags: #llvm, #flang Differential Revision: https://reviews.llvm.org/D83649
-
Matt Arsenault authored
Currently custom code predicates can only really be used for contextless checks tied to a single instruction (e.g. check the def for hasOneUse). If you do want to inspect the input instructions in the source pattern, you cannot without re-verifying the opcode and type checks implied by the patterns, since this check was emitted before any operand constraints. Really, these are pattern level predicates that implicitly depend on the instruction and operand checks. Introduce a filtering function so the custom predicate is emitted last. I'm not sure this is the most elegant solution. It seems like this is really a different thing from the InstructionMatcher/IPM_ predicate kinds. I initially tried keeping this in a separate predicate list, but that also seemed awkward. This only half fixes the problem I'm trying to solve. The AMDGPU pattern I'm attempting to port also uses the PredicateCodeUsesOperands feature to allow checks on the source operands when the input pattern is commuted. Really the emitter should reject the pattern since it doesn't handle this case, but at this point it would be more productive to just implement this.
-
Davide Italiano authored
<rdar://problem/65537147> Differential Revision: https://reviews.llvm.org/D83796
-
Uday Bondhugula authored
Add missing const - addresses clang tidy warnings. Differential Revision: https://reviews.llvm.org/D83794
-
Vedant Kumar authored
I mistyped the ubsan objc_cast handler names on the first try. Testing: ./bin/llvm-lit projects/compiler-rt/test/asan/X86_64HDarwinConfig/TestCases/Darwin/interface_symbols_darwin.cpp
-
Lang Hames authored
LazyReexportsManager instances use the trampoline pool, but they don't need to own it. Keeping TrampolinePool ownership separate allows re-use of the trampoline pool by other clients.
-
Francesco Petrogalli authored
Summary: The following preprocessor macros are implied when `-march=armv8.6a+sve`: ``` __ARM_FEATURE_SVE 1 __ARM_FEATURE_SVE_BF16 1 __ARM_FEATURE_SVE_MATMUL_FP32 1 __ARM_FEATURE_SVE_MATMUL_INT8 1 ``` Reviewers: sdesmalen, efriedma, SjoerdMeijer, rengolin Subscribers: tschuett, kristof.beyls, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83079
-
Jonas Devlieghere authored
Use runBuildCommands, like all other builders, to raise a build-specific error when the command fails.
-
Jonas Devlieghere authored
- Make the open more Pythonic. - Remove the unused `cleanup` Make target. - Remove commented-out/obvious/low-value comments. - Cleanup the forked process PID list.
-
Richard Barton authored
As per discussion in D69207, have lit ignore UnicodeDecodeErrors when running with python 2 in an ASCII shell. Differential Revision: https://reviews.llvm.org/D82754
-
Isuru Fernando authored
Summary: This is a follow up to https://reviews.llvm.org/D78306 Reviewers: DavidTruby, sscalpone, jdoerfert Reviewed By: DavidTruby Subscribers: tskeith, Meinersbur, ChinouneMehdi, richard.barton.arm, mehdi_amini, mgorny, llvm-commits Tags: #llvm, #flang Differential Revision: https://reviews.llvm.org/D81695
-
Jonas Devlieghere authored
Skip TestProcessConnect.py on Windows and Android (the same platforms as TestPlatformProcessConnect.py) and mark it as a NO_DEBUG_INFO test so we don't run all the variants.
-
Sam McCall authored
Summary: We only support Build/Skip for now, but with 'Load' or similar as an option for future (load existing shards but don't build new ones). This requires creating the config for each TU on startup. In LLVM, this is 4000 occurrences for a total of 800ms on my machine. But together with caching from D83755 it is only 25ms. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83768
-
Richard Smith authored
If we deduced the arity of a pack in two different ways, but didn't deduce an element of the pack in either of those deductions, we'd merge that element to produce a null template argument, which we'd incorrectly interpret as the merge having failed. Testcase based on one supplied by Hubert Tong.
-
Logan Smith authored
This fixes warnings raised by Clang's new -Wsuggest-override, in preparation for enabling that warning in the LLVM build. This patch also removes the virtual keyword where redundant, but only in places where doing so improves consistency within a given file. It also removes a couple unnecessary virtual destructor declarations in derived classes where the destructor inherited from the base class is already virtual. Differential Revision: https://reviews.llvm.org/D83709
-
Logan Smith authored
ClangAttrEmitter.cpp generates ParsedAttr derived classes with virtual overrides in them (which end up in AttrParsedAttrImpl.inc); this patch ensures these generated functions are marked override, and not (redundantly) virtual. I hesitate to say NFC since this does of course affect the behavior of the generator code, but the generated code behaves the same as it did before, so it's NFC in that sense. Differential Revision: https://reviews.llvm.org/D83616
-
Rahul Joshi authored
- Arguments of the first block of a region are considered region arguments. - Add API on Region class to deal with these arguments directly instead of using the front() block. - Changed several instances of existing code that can use this API - Fixes https://bugs.llvm.org/show_bug.cgi?id=46535 Differential Revision: https://reviews.llvm.org/D83599
-
Shuhong Liu authored
Summary: llvm-cov.test generates .gcov files and compared with target sample files. Since the files do not contain any binary data (files are plain ASCII texts), remove -a from diff. And this fix will the error on AIX since the default diff tool on AIX does not support -a option. Reviewers: hubert.reinterpretcast, daltenty, stevewan Subscribers: llvm-commits Tags: #LLVM Differential Revision: https://reviews.llvm.org/D83711
-
Rahul Joshi authored
- Avoid generating "assert(resultTypes.size() >= 0u)" which is always true Differential Revision: https://reviews.llvm.org/D83735
-
Michael Kruse authored
Loop metadata nodes do not adhere to the documented property: (a) LoopIDs are not unique: Any pass that duplicates IR will do it including its metadata (e.g. LoopVersioning) such that multiple loops are linked with the same LoopID. There is even a test case (Transforms/LoopUnroll/unroll-pragmas-disabled.ll) for multiple loops with the same LoopID. (b) LoopIDs are not persistent: Adding or removing an item from a LoopID can only be done by creating a new MDNode and assigning it to the loop's branch(es). Passes such as LoopUnroll (llvm.loop.unroll.disable) and LoopVectorize (llvm.loop.isvectorized) use this to mark loops to not be transformed multiple times or to avoid that a LoopVersioned original loop is transformed. Update the documentation according to how llvm.loop is used in practice. Differential Revision: https://reviews.llvm.org/D55290
-
- Jul 14, 2020
-
-
Logan Smith authored
This patch adds override to several overriding virtual functions that were missing the keyword within the clang/ directory. These were found by the new -Wsuggest-override.
-
Louis Dionne authored
The libc++ headers were included twice, which broke the #include_next logic.
-
Fred Riss authored
Summary: This patch extends the ModuleSpec class to include a DataBufferSP which contains the module data. If this data is provided, LLDB won't try to hit the filesystem to create the Module, but use only the data stored in the ModuleSpec. Reviewers: labath, espindola Subscribers: emaste, MaskRay, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D83512
-
Jonas Devlieghere authored
In synchronous mode, the process connect command and its aliases should wait for the stop event before claiming the command is complete. Currently, the stop event is always handled asynchronously by the debugger. The implementation takes the same approach as Process::ResumeSynchronous which hijacks the event and handles it on the current thread. Similarly, after this patch, the stop event is part of the command return object, which is the property used by the test case. Differential revision: https://reviews.llvm.org/D83728
-
Sam McCall authored
-
Sam McCall authored
Summary: This is motivated by: - code completion: nice to do no i/o on the request path - background index: deciding whether to enqueue each file would stat the config file thousands of times in quick succession. Currently it's applied uniformly to all requests though. This gives up on performing stat() outside the lock, all this achieves is letting multiple threads stat concurrently (and thus finish without contention for nonexistent files). The ability to finish without IO (just mutex lock + integer check) should outweigh this, and is less sensitive to platform IO characteristics. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83755
-
Sanjay Patel authored
This is another problem raised in: http://bugs.llvm.org/PR46627
-
Sanjay Patel authored
-
Sam McCall authored
Summary: While here, add documentation to CompileFlags and CompileFlags.Add. Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83705
-
Simon Tatham authored
Summary: This can be run after a ninja-based build, and analyzes the ninja build files and dependency database to spot any missing dependencies in the build scripts. I wrote it in the course of investigating D82659, and it seems likely to be useful again. Reviewers: thakis, chandlerc, theraven Reviewed By: thakis Subscribers: riccibruno, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83032
-
Louis Dionne authored
Instead of having complex logic around how to include the libc++ headers and __config_site, handle that by defining cxx-headers as an INTERFACE library and linking against it. After this patch, linking against cxx-headers is sufficient to get the right __config_site include and include paths for libc++. Differential Revision: https://reviews.llvm.org/D82702
-
Jacques Pienaar authored
Summary: Currently forward decls are included with all the op classes. But there are cases (say when splitting up headers) where one wants the forward decls but not all the classes. Add an option to enable this. This does not change any current behavior (some further refactoring is probably due here). Differential Revision: https://reviews.llvm.org/D83727
-
Dmitri Gribenko authored
Summary: Names of local variables have no linkage (see C++20 [basic.link] p8). Names of variables in unnamed namespace have internal linkage (see C++20 [basic.link] p4). Reviewers: aaron.ballman, rsmith, ymandel Reviewed By: ymandel Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83700
-
Sam McCall authored
Summary: This is designed for tweaking compile commands by specifying flags to add/remove in a config file. Something like: CompileFlags: { Remove: -fcolor-diagnostics } Having users tweak raw argv (e.g. with a regex) is going to end in tears: bugs around clang-cl, xclang, aliases, joined-vs-separate args etc are inevitable. This isn't in tooling because of the performance choices: build a big table up-front to make subsequent actions fast. Maybe it should be though. Reviewers: adamcz, hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81958 -
Jay Foad authored
-
Mott, Jeffrey T authored
The _ExtInt type allows custom width integers, but the atomic memory access's operand must have a power-of-two size. _ExtInts with non-power-of-two size should not be allowed for atomic intrinsic. Before this change: $ cat test.c typedef unsigned _ExtInt(42) dtype; void verify_binary_op_nand(dtype* pval1, dtype val2) { __sync_nand_and_fetch(pval1, val2); } $ clang test.c clang-11: /home/ubuntu/llvm_workspace/llvm/clang/lib/CodeGen/CGBuiltin.cpp:117: llvm::Value* EmitToInt(clang::CodeGen::CodeGenFunction&, llvm::Value*, clang::QualType, llvm::IntegerType*): Assertion `V->getType() == IntType' failed. PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. After this change: $ clang test.c test.c:3:30: error: Atomic memory operand must have a power-of-two size { __sync_nand_and_fetch(pval1, val2); } ^ List of the atomic intrinsics that have this problem: __sync_fetch_and_add __sync_fetch_and_sub __sync_fetch_and_or __sync_fetch_and_and __sync_fetch_and_xor __sync_fetch_and_nand __sync_nand_and_fetch __sync_and_and_fetch __sync_add_and_fetch __sync_sub_and_fetch __sync_or_and_fetch __sync_xor_and_fetch __sync_fetch_and_min __sync_fetch_and_max __sync_fetch_and_umin __sync_fetch_and_umax __sync_val_compare_and_swap __sync_bool_compare_and_swap Differential Revision: https://reviews.llvm.org/D83340 -
Roger Ferrer Ibanez authored
Because of the layout of stores (that don't have a destination operand) this check is exactly the same as the one in RISCVInstrInfo::isLoadFromStackSlot. Differential Revision: https://reviews.llvm.org/D81805
-
Roger Ferrer Ibanez authored
New test to show the changes after D81805 is committed. Differential Revision: https://reviews.llvm.org/D83750
-
Sourabh Singh Tomar authored
Summary: This patch implements lowering of OpenMP barrier construct from pft to OpenMPDialect. Patch is carved out of following merged PR's from fir-dev branch of https://github.com/flang-compiler/f18-llvm-project/ PR's: https://github.com/flang-compiler/f18-llvm-project/pull/248 https://github.com/flang-compiler/f18-llvm-project/pull/251 Unfortunately primary tool `bbc` for functional validation is not yet upstreamed. So this patch includes a unittest for lowering `!OMP barrier` construct. Some part of the these PR's still remains downstream(functional test and dialect registration to legalizer) for obvious reasons. Will upstream them when the dependencies are upstreamed. Reviewed By: schweitz, kiranchandramohan Differential Revision: https://reviews.llvm.org/D83659
-
serge-sans-paille authored
This reverts commit f1efb8bb. Reverted because it doesn't correctly update the pass return status, see http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/9441/steps/test-check-all/logs/FAIL%3A%20LLVM%3A%3Awiden-i32-i8ptr.ll
-