1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00
llvm-mirror/include/llvm
Thomas Lively 7987888a3f [WebAssembly][InstrEmitter] Foundation for multivalue call lowering
Summary:
WebAssembly is unique among upstream targets in that it does not at
any point use physical registers to store values. Instead, it uses
virtual registers to model positions in its value stack. This means
that some target-independent lowering activities that would use
physical registers need to use virtual registers instead for
WebAssembly and similar downstream targets. This CL generalizes the
existing `usesPhysRegsForPEI` lowering hook to
`usesPhysRegsForValues` in preparation for using it in more places.

One such place is in InstrEmitter for instructions that have variadic
defs. On register machines, it only makes sense for these defs to be
physical registers, but for WebAssembly they must be virtual registers
like any other values. This CL changes InstrEmitter to check the new
target lowering hook to determine whether variadic defs should be
physical or virtual registers.

These changes are necessary to support a generalized CALL instruction
for WebAssembly that is capable of returning an arbitrary number of
arguments. Fully implementing that instruction will require additional
changes that are described in comments here but left for a follow up
commit.

Reviewers: aheejin, dschuff, qcolombet

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71484
2020-01-21 11:13:46 -08:00
..
ADT PointerLikeTypeTraits: Standardize NumLowBitsAvailable on static constexpr rather than anonymous enum 2020-01-16 15:30:50 -08:00
Analysis [Alignment][NFC] Use Align with CreateMaskedLoad 2020-01-21 14:13:22 +01:00
AsmParser
BinaryFormat [Hexagon] Add support for Hexagon v67t microarchitecture (tiny core) 2020-01-21 11:35:10 -06:00
Bitcode [LTO] Support for embedding bitcode section during LTO 2019-12-12 12:34:19 -08:00
Bitstream Remarks - fix static analyzer warnings. NFCI. 2019-11-09 13:01:05 +00:00
CodeGen [StackColoring] Remap PseudoSourceValue frame indices via MachineFunction::getPSVManager() 2020-01-21 09:46:27 -08:00
Config build: reduce CMake handling for zlib 2020-01-02 11:19:12 -08:00
DebugInfo [DebugInfo] Simplify the constructor of DWARFDebugAranges::Range. NFC. 2020-01-16 13:08:30 +07:00
Demangle PODSmallVector - fix MSVC uninitialized variable warnings. NFCI. 2019-11-10 11:18:15 +00:00
DWARFLinker [Dsymutil][Debuginfo][NFC] #3 Refactor dsymutil to separate DWARF optimizing part. 2020-01-13 23:33:25 +03:00
ExecutionEngine [ORC] Add weak symbol support to defineMaterializing, fix for PR40074. 2020-01-19 10:46:07 -08:00
Frontend/OpenMP Fix Wdocumentation warnings. NFCI. 2020-01-07 10:55:38 +00:00
FuzzMutate
IR [Alignment][NFC] Use Align with CreateElementUnorderedAtomicMemMove 2020-01-21 14:16:50 +01:00
IRReader
LineEditor
Linker
LTO [LTO] Constify lto::Config reference passed to backends (NFC) 2020-01-13 12:26:17 -08:00
MC Update spelling of {analyze,insert,remove}Branch in strings and comments 2020-01-21 10:15:38 -06:00
MCA [MCA][LSUnit] Track loads and stores until retirement. 2019-10-08 10:46:01 +00:00
Object [WebAssembly] Add new export_name clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
ObjectYAML [yaml2obj/obj2yaml] - Add support for SHT_RELR sections. 2020-01-15 15:15:24 +03:00
Option
Passes [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
ProfileData [profile] Support counter relocation at runtime 2020-01-17 15:02:23 -08:00
Remarks Remarks - fix static analyzer warnings. NFCI. 2019-11-09 13:01:05 +00:00
Support Revert "[Support] Explicitly instantiate BumpPtrAllocatorImpl" 2020-01-18 09:33:00 -08:00
TableGen [TableGen] Add bang-operators !getop and !setop. 2019-12-11 12:05:22 +00:00
Target [WebAssembly][InstrEmitter] Foundation for multivalue call lowering 2020-01-21 11:13:46 -08:00
Testing/Support
TextAPI Reland "[TextAPI] Introduce TBDv4" 2019-10-10 04:24:44 +00:00
ToolDrivers
Transforms [LV] Vectorizer should adjust trip count in profile information 2020-01-20 18:36:28 +07:00
WindowsManifest
WindowsResource
XRay FDRRecords - fix uninitialized variable warnings. NFCI. 2019-11-07 18:42:02 +00:00
CMakeLists.txt
InitializePasses.h [NewPM] Port MergeFunctions pass 2020-01-14 20:55:41 +01:00
LinkAllIR.h
LinkAllPasses.h [BasicBlockUtils] Add utility to remove redundant dbg.value instrs 2019-12-16 11:41:21 +01:00
module.extern.modulemap
module.install.modulemap
module.modulemap [CMake] Fix modules build after DWARFLinker reorganization 2020-01-10 11:06:38 -08:00
module.modulemap.build
Pass.h Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h