- Sep 01, 2021
-
-
Philip Reames authored
This is a bailout for pr51680. This pass appears to assume that the alignment operand to an align tag on an assume bundle is constant. This doesn't appear to be required anywhere, and clang happily generates non-constant alignments for cases such as this case taken from the bug report: // clang -cc1 -triple powerpc64-- -S -O1 opal_pci-min.c extern int a[]; long *b; long c; void *d(long, int *, int, long, long, long) __attribute__((__alloc_align__(6))); void e() { b = d(c, a, 0, 0, 5, c); b[0] = 0; } This was exposed by a SCEV change which allowed a non-constant alignment to reach further into the pass' code. We could generalize the pass, but for now, let's fix the crash. -
Shilei Tian authored
As discussed in D107121, task wait doesn't work when a regular task T depends on a detached task or a hidden helper task T' in a serialized team. The root cause is, since the team is serialized, the last task will not be tracked by `td_incomplete_child_tasks`. When T' is finished, it first releases its dependences, and then decrements its parent counter. So far so good. For the thread that is running task wait, if at the moment it is still spinning and trying to execute tasks, it is fine because it can detect the new task and execute it. However, if it happends to finish the function `flag.execute_tasks(...)`, it will be broken because `td_incomplete_child_tasks` is 0 now. In this patch, we update the rule to track children tasks a little bit. If the task team encounters a proxy task or a hidden helper task, all following tasks will be tracked. Reviewed By: AndreyChurbanov Differential Revision: https://reviews.llvm.org/D107496
-
Sanjay Patel authored
-
- Aug 31, 2021
-
-
Yaron Keren authored
Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D109000
-
Kazu Hirata authored
Identified with readability-redundant-string-cstr.
-
Fanbo Meng authored
Change OF_None to OF_Text flag in file creation, same reasoning as https://reviews.llvm.org/D97785 Reviewed By: abhina.sreeskantharajan Differential Revision: https://reviews.llvm.org/D108998
-
Philip Reames authored
This patch is specifically the howManyLessThan case. There will be a couple of followon patches for other codepaths. The subtle bit is explaining why the two codepaths have a difference while both are correct. The test case with modifications is a good example, so let's discuss in terms of it. * The previous exact bounds for this example of (-126 + (126 smax %n))<nsw> can evaluate to either 0 or 1. Both are "correct" results, but only one of them results in a well defined loop. If %n were 127 (the only possible value producing a trip count of 1), then the loop must execute undefined behavior. As a result, we can ignore the TC computed when %n is 127. All other values produce 0. * The max taken count computation uses the limit (i.e. the maximum value END can be without resulting in UB) to restrict the bound computation. As a result, it returns 0 which is also correct. WARNING: The logic above only holds for a single exit loop. The current logic for max trip count would be incorrect for multiple exit loops, except that we never call computeMaxBECountForLT except when we can prove either a) no overflow occurs in this IV before exit, or b) this is the sole exit. An alternate approach here would be to add the limit logic to the symbolic path. I haven't played with this extensively, but I'm hesitant because a) the term is optional and b) I'm not sure it'll reliably simplify away. As such, the resulting code quality from expansion might actually get worse. This was noticed while trying to figure out why D108848 wasn't NFC, but is otherwise standalone. Differential Revision: https://reviews.llvm.org/D108921
-
Paul Robinson authored
Tests in CodeGen/Generic should not depend on any specific target.
-
gbreynoo authored
As seen in https://bugs.llvm.org/show_bug.cgi?id=48880 the current implementation for parsing grouped short options can return unclear error messages. This change fixes the example given in the ticket in which a flag is incorrectly given an argument. Also when parsing a group we now keep reading past the first incorrect option and output errors for all incorrect options in the group. Differential Revision: https://reviews.llvm.org/D108770
-
Vassil Vassilev authored
This is essentially what D106813 was supposed to do but did not. Differential revision: https://reviews.llvm.org/D108919
-
Hussain Kadhem authored
Followup to D99355: SDAG support for vector-predicated load/store/gather/scatter. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D105871
-
Louis Dionne authored
-
Nemanja Ivanovic authored
This reverts commit 0a6fad75. It caused failures on a number of PowerPC bots.
-
Kuba Mracek authored
To support Virtual Function Elimination to Swift, this PR adds support for Swift vtables which contain "relative pointers" instead of direct pointer references. These are in the form of: @symbol = ... { i32 trunc (i64 sub (i64 ptrtoint (<type> @target to i64), i64 ptrtoint (... @symbol to i64)) to i32) } The PR extends GlobalDCE's way of looking up a vtable offset into a dependency to be able to see through this expression and find the target symbol. Differential Revision: https://reviews.llvm.org/D107645 -
Sanjay Patel authored
The existing code was unquestionably wrong - it looked at one fneg and ignored the other 2 instructions. It was also untested, so it didn't make the list of bugs flagged by Alive2. This is an unusual propagation, but Alive2 agress that we can intersect the fnegs and union that with the select, then apply the results to both new instructions: https://alive2.llvm.org/ce/z/SF8_dt
-
LLVM GN Syncbot authored
-
Xiang Xiao authored
Since these functions can handled by NuttX's libc now Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D108895
-
Anton Afanasyev authored
Add test for an issue discussed here: https://reviews.llvm.org/D108703#2974289
-
Sanjay Patel authored
-
Sanjay Patel authored
-
Anton Afanasyev authored
Revert since introduced issure reported here: https://lists.llvm.org/pipermail/llvm-dev/2021-August/152411.html Discussed starting from here: https://reviews.llvm.org/D108703#2974289 This reverts commit a36bc873.
-
Michał Górny authored
Remove software breakpoints from forked processes in order to restore the original program code before detaching it. Differential Revision: https://reviews.llvm.org/D100263
-
Andy Yankovsky authored
This reverts commit aafa05e0. Broke builder on aarch64 -- https://lab.llvm.org/buildbot/#/builders/96/builds/10926
-
Simon Pilgrim authored
Copy the skylake-avx512 tests for icelake-server coverage. Add icelake/rocketlake/tigerlake test coverage to the relevent generic tests as well.
-
Andrej Korman authored
This change adds save-core functionality into the ObjectFileELF that enables saving minidump of a stopped process. This change is mainly targeting Linux running on x86_64 machines. Minidump should contain basic information needed to examine state of threads, local variables and stack traces. Full support for other platforms is not so far implemented. API tests are using LLDB's MinidumpParser. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D108233
-
Simon Pilgrim authored
Icelake, Rocketlake and Tigerlake targets currently use the SkylakeServer scheduler model, despite being a later microarchitecture, leading to both reported bugs (PR48110) and discrepancies when comparing llvm-mca reports to other profiling tools (OSACA, uops, uica, etc.). And tbh I'm getting sick of llvm-mca getting blamed for what are backend scheduler model issues :-( This patch doesn't attempt to fix any of these discrepancies - there should be no changes in codegen - its a setup patch that copies the skx model, renames all the resources, adds the additional ports (but doesn't reference them yet) and updates the llvm-exegesis pfm counter mappings (based off https://sourceforge.net/p/perfmon2/libpfm4/ci/master/tree/lib/events/intel_icl_events.h). This should make it trivial for anyone with hardware access to use llvm-exegesis reports to iteratively improve the model (my attempts to get hold of a cheap tiger lake box haven't been fruitful yet....). I will copy the SkylakeServer llvm-mca resource tests as follow up commits - the diff should entirely be the resource renames. Differential Revision: https://reviews.llvm.org/D108914
-
Douglas Yung authored
Fix test by adding REQUIRES: x86-registered-target to skip test in configurations that do not include x86.
-
Tres Popp authored
Don't assert fail on strided memrefs when dropping unit dims. Instead just leave them unchanged. Differential Revision: https://reviews.llvm.org/D108205
-
marina kolpakova a.k.a. geexie authored
implements canonicalization which folds memref.dim(gpu.alloc(%size), %idx) -> %size Differential Revision: https://reviews.llvm.org/D108892
-
Justas Janickas authored
This change defines a helper function getOpenCLCompatibleVersion() inside LangOptions class. The function contains mapping between C++ for OpenCL versions and their corresponding compatible OpenCL versions. This mapping function should be updated each time a new C++ for OpenCL language version is introduced. The helper function is expected to simplify conditions on OpenCL C and C++ for OpenCL versions inside compiler code. Code refactoring performed. Differential Revision: https://reviews.llvm.org/D108693
-
Jason Molenda authored
When adding a dSYM to a Module and it has different file addresses from the already-present ObjectFile binary, change the Sections to use the dSYM's file addresses so the symbol table and DWARF are properly contained in the Sections. Previously this was only done for IsInMemory ObjectFiles, but it's more common than that. Differential Revision: https://reviews.llvm.org/D108889 rdar://81504400
-
Shivam Gupta authored
CodeGenMapTable.cpp refers to TableGen as TabelGen in the comments. This appears to be a typo. This patch fixes the typo. Differential Revision: https://reviews.llvm.org/D76343
-
Simon Wallis authored
Add assert to provoke failure in object file output, not just in disassembly output. Reviewed By: yroux Differential Revision: https://reviews.llvm.org/D107259
-
Shivam Gupta authored
Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D98254
-
Shivam Gupta authored
In [[ https://clang.llvm.org/docs/LibASTMatchersReference.html | AST Matcher Reference]], the example of matcher `hasDeclContext` contained a typo. `cxxRcordDecl` was changed to `cxxRecordDecl`. Differential Revision: https://reviews.llvm.org/D102836
-
Kai Luo authored
-
Doug Beck authored
Differential Revision: https://reviews.llvm.org/D107099
-
Alexander Pivovarov authored
Reviewed By: MaskRay, jsji Differential Revision: https://reviews.llvm.org/D108857
-
Shivam Gupta authored
This file contain some old reference to files those are now either renamed or replaced. Also this .txt file didn't generate to html during the sphnix documentation build so I send its contents to resources/test.rst file. Signed-off-by:
Shivam Gupta <shivam98.tkg@gmail.com> Reviewed By: teemperor, mgorny, JDevlieghere Differential Revision: https://reviews.llvm.org/D108812
-
Shivam Gupta authored
Upadate some .txt files to .rst for consistency as most of the documentation is written in reStructuredText format. Signed-off-by:
Shivam Gupta <shivam98.tkg@gmail.com> Differential Revision: https://reviews.llvm.org/D108807
-