- Jan 22, 2021
-
-
Mircea Trofin authored
This patch sets the default for llvm tests, with the exception of tests under Reduce, because quite a few of them use 'FileCheck' as parameter to a tool, and including a flag as that parameter would complicate matters. The rest of the patch undo-es the lit.local.cfg changes we progressively introduced as temporary measure to avoid regressions under various directories. Differential Revision: https://reviews.llvm.org/D95111
-
Arthur Eubanks authored
Having a custom inliner doesn't really fit in with the new PM's pipeline. It's also extra technical debt. amdgpu-inline only does a couple of custom things compared to the normal inliner: 1) It disables inlining if the number of BBs in a function would exceed some limit 2) It increases the threshold if there are pointers to private arrays(?) These can all be handled as TTI inliner hooks. There already exists a hook for backends to multiply the inlining threshold. This way we can remove the custom amdgpu-inline pass. This caused inline-hint.ll to fail, and after some investigation, it looks like getInliningThresholdMultiplier() was previously getting applied twice in amdgpu-inline (https://reviews.llvm.org/D62707 fixed it not applying at all, so some later inliner change must have fixed something), so I had to change the threshold in the test. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D94153
-
Arthur Eubanks authored
This reverts commit be611431. Other/new-pm-lto-defaults.ll failing
-
Jacques Pienaar authored
Add factory to create streams for logging the reproducer. Allows for more general logging (beyond file) and logging the configuration/module separately (logged in order, configuration before module). Also enable querying filename of ToolOutputFile. Differential Revision: https://reviews.llvm.org/D94868
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Arthur Eubanks authored
We tend to assume that the AA pipeline is by default the default AA pipeline and it's confusing when it's empty instead. PR48779 Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D95117
-
Hsiangkai Wang authored
The DWARF numbers of vector registers are already defined in riscv-elf-psabi. The DWARF number for vector is start from 96. Correct the DWARF numbers of vector registers. Differential Revision: https://reviews.llvm.org/D94749
-
Craig Topper authored
These instructions produce 2*SEW result so the input can't have an LMUL=8 or the result would need a non-existant LMUL=16. So only create pseudos for LMUL up to 4. Differential Revision: https://reviews.llvm.org/D95189
-
Cassie Jones authored
The expansion for wide subtractions includes G_USUBO. Differential Revision: https://reviews.llvm.org/D95032
-
ShihPo Hung authored
Reviewed By: craig.topper, frasercrmck Differential Revision: https://reviews.llvm.org/D95113
-
ShihPo Hung authored
Add unordered indexed load: vluxei Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D95028
-
ShihPo Hung authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D95014
-
Xun Li authored
The same check is done in InlineCost: https://github.com/llvm/llvm-project/blob/8b0bd54d0ec968df28ccc58bbb537a7b7c074ef2/llvm/lib/Analysis/InlineCost.cpp#L2537-L2552 Also, doing a check on the callee here is confusing, because anything that deals with callee should be done in the inner loop where we proecss all calls from the same caller. Differential Revision: https://reviews.llvm.org/D95186
-
Qiu Chaofan authored
PowerPC has its custom scheduler heuristic. It calls parent classes' tryCandidate in override version, but the function returns void, so this way doesn't actually help. This patch duplicates code from base scheduler into PPC machine scheduler class, which does what we wanted. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D94464
-
RamNalamothu authored
This test case demonstrates that the Call Frame Information generation is totally biased towards whether exceptions are enabled or not. Currently LLVM does not generate CFI i.e. a .debug_frame for debug purpose even if --force-dwarf-frame-section is enabled unless exceptions are enabled. Reviewed By: scott.linder Differential Revision: https://reviews.llvm.org/D94801
-
Akira Hatanaka authored
check This patch fixes a bug in emitARCOperationAfterCall where it inserts the fall-back call after a bitcast instruction and then replaces the bitcast's operand with the result of the fall-back call. The generated IR without this patch looks like this: msgSend.call: ; preds = %entry %call = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend br label %msgSend.cont msgSend.null-receiver: ; preds = %entry call void @llvm.objc.release(i8* %4) br label %msgSend.cont msgSend.cont: %8 = phi i8* [ %call, %msgSend.call ], [ null, %msgSend.null-receiver ] %9 = bitcast i8* %10 to %0* %10 = call i8* @llvm.objc.retain(i8* %8) Notice that `%9 = bitcast i8* %10` to %0* is taking operand %10 which is defined after it. To fix the bug, this patch modifies the insert point to point to the bitcast instruction so that the fall-back call is inserted before the bitcast. In addition, it teaches the function to look at phi instructions that are generated when there is a check for a null receiver and insert the retainRV/claimRV instruction right after the call instead of inserting a fall-back call right after the phi instruction. rdar://73360225 Differential Revision: https://reviews.llvm.org/D95181
-
mikeurbach authored
This extracts the implementation of getType, setType, and getBody from FunctionSupport.h into the mlir::impl namespace and defines them generically in FunctionSupport.cpp. This allows them to be used elsewhere for any FunctionLike ops that use FunctionType for their type signature. Using the new helpers, FuncOpSignatureConversion is generalized to work with all such FunctionLike ops. Convenience helpers are added to configure the pattern for a given concrete FunctionLike op type. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D95021
-
Wolfgang Pieb authored
-
Craig Topper authored
The fault-only-first-load instructions can reduce VL if an element other than element 0 triggers a memory fault. This can be used to vectorize loops with data dependent exit conditions like strcmp or strlen. This patch adds a VL output to these intrinsics so that the new VL value can be captured by software. This will be expanded to 'csrr gpr, vl' after the vleff instruction during SelectionDAG. By doing this with one intrinsic we are able to guarantee that the csrr reads the VL value produced by the vleff instruction. Having it as a separate intrinsic would make it impossible to guarantee ordering without making every other vector intrinsic have side effects. The intrinsics are expanded during lowering into two ISD nodes that are glued together. These ISD nodes will go through isel separately, but should maintain the glue so that they get emitted adjacently by InstrEmitter. I've only ran the chain through the vleff instruction, allowing the READ_VL to be deleted if it is unused. Reviewed By: HsiangKai Differential Revision: https://reviews.llvm.org/D94286
-
Chen Zheng authored
Reviewed By: nemanjai, jsji Differential Revision: https://reviews.llvm.org/D92069
-
peter klausler authored
ProcedureDesignator::GetInterfaceSymbol() needs to return the procedure bound to a bindings. Differential Revision: https://reviews.llvm.org/D95178
-
Brad Smith authored
local __libcpp_asprintf_l() -> libc asprintf() was inspecting the pointer (with indeterminate value) for failure, rather than the return value of -1. Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D94564
-
peter klausler authored
Fixes a bogus error message about an actual argument not being an object. Differential Revision: https://reviews.llvm.org/D95176
-
Wolfgang Pieb authored
-
peter klausler authored
Don't emit a bogus error message about a bad forward reference when it's an IMPORT of a USE-associated symbol; don't ignore intrinsic functions when USE-associating the contents of a module when the intrinsic has been explicitly USE'd; allow PUBLIC or PRIVATE accessibility attribute to be specified for an enumerator before the declaration of the enumerator. Differential Revision: https://reviews.llvm.org/D95175
-
Hsiangkai Wang authored
The maximum LMUL is 8. We need 16 vector registers for two LMUL-8 arguments. The modification follows the proposal of psABI in https://github.com/riscv/riscv-elf-psabi-doc/pull/171 Differential Revision: https://reviews.llvm.org/D95134
-
Wolfgang Pieb authored
Differential Revision: https://reviews.llvm.org/D86644
-
Hsiangkai Wang authored
Upgrade RISC-V V extension to v1.0-08a0b46. Indexed load/store have ordered and unordered form. New whole vector load/store. Differential Revision: https://reviews.llvm.org/D93614
-
Petr Hosek authored
This is useful for debugging issues, for example when cross-compiling. Differential Revision: https://reviews.llvm.org/D95118
-
LLVM GN Syncbot authored
-
Fangrui Song authored
1. All `_URC_HANDLER_FOUND` return values need to set `landingPad` and its value does not matter for `_URC_CONTINUE_UNWIND`. So we can always set `landingPad` to unify code. 2. For an exception specification (`ttypeIndex < 0`), we can check `_UA_FORCE_UNWIND` first. 3. The so-called type 3 search (`actions & _UA_CLEANUP_PHASE && !(actions & _UA_HANDLER_FRAME)`) is actually conceptually wrong. For a catch handler or an unmatched dynamic exception specification, `_UA_HANDLER_FOUND` should be returned immediately. It still appeared to work because the `ttypeIndex==0` case would return `_UA_HANDLER_FOUND` at a later time. This patch fixes the conceptual error and simplifies the code by handling type 3 the same way as type 2 (which is also what libsupc++ does). The only difference between phase 1 and phase 2 is what to do with a cleanup (`actionEntry==0`, or a `ttypeIndex==0` is found in the action record chain): phase 1 returns `_URC_CONTINUE_UNWIND` while phase 2 returns `_URC_HANDLER_FOUND`. Reviewed By: #libc_abi, compnerd Differential Revision: https://reviews.llvm.org/D93190
-
Wolfgang Pieb authored
implemented at this time are Summary, Timeline, ResourcePressure and InstructionInfo. Use --json on the command line to obtain JSON output.
-
- Jan 21, 2021
-
-
Mehdi Amini authored
This includes some minor customization for FuncOp and ModuleOp. Differential Revision: https://reviews.llvm.org/D95022
-
Jon Roelofs authored
CodeGenModule::EmitNullConstant() creates constants with their "in memory" type, not their "in vregs" type. The one place where this difference matters is when the type is _Bool, as that is an i1 when in vregs and an i8 in memory. Fixes: rdar://73361264
-
Sam Clegg authored
See https://bugs.llvm.org/show_bug.cgi?id=48827 Differential Revision: https://reviews.llvm.org/D95163
-
Christian Sigg authored
There are cmake failures that I do not know how to fix. Differential Revision: https://reviews.llvm.org/D95162
-
Dan Albert authored
We've been using this patch in Android so we can avoid including the demangler in libc++.so. It comes with a rather large cost in RSS and isn't commonly needed. Reviewed By: #libc_abi, compnerd Differential Revision: https://reviews.llvm.org/D88189
-
Walter Erquinigo authored
lldb-vsdode was communicating the list of modules to the IDE with events, which in practice ended up having some drawbacks - when debugging large targets, the number of these events were easily 10k, which polluted the messages being transmitted, which caused the following: a harder time debugging the messages, a lag after terminated the process because of these messages being processes (this could easily take several seconds). The latter was specially bad, as users were complaining about it even when they didn't check the modules view. - these events were rarely used, as users only check the modules view when something is wrong and they try to debug things. After getting some feedback from users, we realized that it's better to not used events but make this simply a request and is triggered by users whenever they needed. This diff achieves that and does some small clean up in the existing code. Differential Revision: https://reviews.llvm.org/D94033
-