- Oct 09, 2020
-
-
Fangrui Song authored
-
Jonas Devlieghere authored
Restore the signal tables to its original glory and mark it as not to be clang-formatted.
-
Fangrui Song authored
getReg returns a Register which may represent a virtual register.
-
ahmedsabie authored
[MLIR] Add a foldTrait() mechanism to allow traits to define folding and test it with an Involution trait This change allows folds to be done on a newly introduced involution trait rather than having to manually rewrite this optimization for every instance of an involution Reviewed By: rriddle, andyly, stephenneuendorffer Differential Revision: https://reviews.llvm.org/D88809
-
Liu, Chen3 authored
For example: union M256 { double d; __m256 m; }; extern void foo1(union M256 A); union M256 m1; void test() { foo1(m1); } clang will pass m1 through stack which does not follow the ABI. Differential Revision: https://reviews.llvm.org/D78699 -
Xing GUO authored
This patch rewrites test case verify_die_ranges.s in YAML which helps simplify the test. Reviewed By: jhenderson, JDevlieghere, dblaikie Differential Revision: https://reviews.llvm.org/D88200
-
Xing GUO authored
This patch makes the opcode_base and the standard_opcode_lengths fields of the line table optional. When both of them are not specified, yaml2obj emits them according to the line table's version. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D88355
-
Kazushi (Jam) Marukawa authored
This patch adds entries for: v64i64 v128i64 v256i64 v64f64 v128f64 v256f64 Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D88776 -
Ben Barham authored
ObjCContainerDecl.getMethod returns a nullptr by default when the container is a hidden prototype. Callsites where the method is being looked up on the redeclaration's own container should skip this check since they (rightly) expect a valid method to be found. Resolves rdar://69444243 Reviewed By: akyrtzi Differential Revision: https://reviews.llvm.org/D89024
-
Kai Luo authored
In `rescheduleKillAboveMI`, current implementation uses `SmallSet` to track reg's defs and uses. When comparing, use `SmallSet.count` to find out if it's clobbered or used. It's not correct if involving subregisters. This patch uses `regOverlapsSet` already used by `rescheduleMIBelowKill` to fix the issue. Fixed https://bugs.llvm.org/show_bug.cgi?id=47707. Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D88716
-
Esme-Yi authored
-
QingShan Zhang authored
-
Stella Laurenzo authored
* I believe this was done early on due to it being experimental/etc. * Needed for dynamic linking in npcomp. Differential Revision: https://reviews.llvm.org/D89081
-
Louis Dionne authored
This significantly speeds up the configuration of libc++'s test suite by making sure that we don't perform the same operations over and over again. Differential Revision: https://reviews.llvm.org/D89003
-
Alexandre Ganea authored
Previously, when clang was compiled with -DLLVM_ENABLE_ASSERTIONS=ON, the added tests were displaying: inlinable function call in a function with debug info must have a !dbg location call void @"??1?$c@UB@@@@QEAA@XZ"(%struct.c* @"?f@?1??d@@YAPEAU?$c@UB@@@@XZ@4U2@A") fatal error: error in backend: Broken module found, compilation aborted! Stack dump: 0. Program arguments: <f:\svn\buildninja\bin\clang -cc1 -emit-llvm debug-info-no-location.cpp> -gcodeview -debug-info-kind=limited 1. <eof> parser at end of file 2. Per-function optimization Fixes PR43012 Differential Revision: https://reviews.llvm.org/D66328
-
Kai Luo authored
-
Austin Kerbow authored
Fixes: SWDEV-251863 Differential Revision: https://reviews.llvm.org/D89079
-
Richard Smith authored
types. Previously, a type-dependent cast to a deduced class template specialization type would end up with a non-dependent class template specialization type, leading to confusion downstream.
-
Yuanfang Chen authored
Fix "warning: '\returns' command used in a comment that is not attached to a function or method declaration [-Wdocumentation] 1 warning generated."
-
Fangrui Song authored
-
Jim Ingham authored
Except for the few people actually debugging shells, stopping on a SIGCONT doesn't add any value. And for people trying to run tests under the debugger, stopping here is actively inconvenient. So this patch switches the default behavior to not stop. Differential Revision: https://reviews.llvm.org/D89019
-
Mircea Trofin authored
Mostly LiveIntervals, with their effects (users). Differential Revision: https://reviews.llvm.org/D89018
-
Thomas Raoux authored
Differential Revision: https://reviews.llvm.org/D89062
-
Thomas Raoux authored
When distributing a vector larger than the given multiplicity, we can distribute it by block where each id gets a chunk of consecutive element along the dimension distributed. This adds a test for this case and adds extra checks to make sure we don't distribute for cases not multiple of multiplicity. Differential Revision: https://reviews.llvm.org/D89061
-
Arthur Eubanks authored
Move it as an EP callback (-O[123]) or in addSanitizersAtO0. This makes it not run in ThinLTO pre-link (like the other sanitizers), so don't check LTO runs in hwasan-new-pm.c. Changing its position also seems to change the generated IR. I think we just need to make sure the pass runs. Reviewed By: leonardchan Differential Revision: https://reviews.llvm.org/D88936
-
Alexandre Ganea authored
This is a follow-up for https://reviews.llvm.org/D88975
-
Simon Pilgrim authored
Annoyingly vectors aren't supported by shouldChangeType(), but we have precedents for always performing this on vector types (e.g. narrowBinOp). Differential Revision: https://reviews.llvm.org/D89067
-
Quentin Colombet authored
The IRTranslator depends on the branch probability info pass when the optimization level is different than None and it depends all the time on the StackProtector pass. We have to explicitly call out pass dependencies otherwise the pass manager may not be able to schedule the IRTranslator. Before this patch, we were lucky because previous passes depend on the branch probability info pass (like the Global Variable Optimization) and the stack protector pass is initialized in initializeCodeGen. However, if the target has a custom pipeline without any passes like Global Variable Optimization, the pipeline creation will fail, at least because of the branch probability info pass dependency (it is unlikely that initializeCodeGen is not called). This patch adds the missing dependencies to the IRTranslator. Differential Revision: https://reviews.llvm.org/D89063
-
Paula Toth authored
Tested locally by connecting to LLVM master. (: http://lab.llvm.org:8011/#/builders/78/builds/1 Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D89069
-
Simon Pilgrim authored
-
Sanjay Patel authored
This can be allowed with undef elements too, but that can be another step: https://alive2.llvm.org/ce/z/hnC4Z-
-
Mehdi Amini authored
-
Simon Pilgrim authored
Use cast<> as we immediately dereference the pointer afterwards - cast<> will assert if we fail. Prevents clang static analyzer warning that we could deference a null pointer.
-
Sanjay Patel authored
Pre-conditions seem to be optimal, but we don't need a use check because we are only replacing an add with a sub. https://rise4fun.com/Alive/hzN Pre: (~C1 | C2 == -1) && isPowerOf2(C2+1) %m = and i8 %x, C1 %f = xor i8 %m, C2 %r = add i8 %f, C3 => %r = sub i8 C2 + C3, %m
-
Sanjay Patel authored
-
Simon Pilgrim authored
Wrap the containErrors() calls together - assert we have any containErrors cases in the conditional operator.
-
Simon Pilgrim authored
Fixes clang static analyzer warning.
-
Heejin Ahn authored
In LowerEmscriptenEHSjLj, `longjmp` used to be replaced with `emscripten_longjmp_jmpbuf(jmp_buf*, i32)`, which will eventually be lowered to `emscripten_longjmp(i32, i32)`. The reason we used two different names was because they had different signatures in the IR pass. D88697 fixed this by only using `emscripten_longjmp(i32, i32)` and adding a `ptrtoint` cast to its first argument, so ``` longjmp(buf, 0) ``` becomes ``` emscripten_longjmp((i32)buf, 0) ``` But this assumed all uses of `longjmp` was a direct call to it, which was not the case. This patch handles indirect uses of `longjmp` by replacing ``` longjmp ``` with ``` (i32(*)(jmp_buf*, i32))emscripten_longjmp ``` Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D89032
-
Quentin Colombet authored
We already offer zextOrTrunc and it seems natural to offer the same capability for sign extension. This patch is a preparatory addition useful for future computeKnownBits developments. Differential Revision: https://reviews.llvm.org/D88937
-
Quentin Colombet authored
This patch refactors the logic in ValueTracking.cpp so that computeKnownBitsForMul now uses a helper function from KnownBits. NFC Differential Revision: https://reviews.llvm.org/D88935
-