For now, this ABI simply expands all possible aggregate arguments and
returns all possible aggregates directly. This ABI will change rapidly
as we prototype and benchmark a new ABI that takes advantage of
multivalue return and possibly other changes from the MVP ABI.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Unit tests: fail. 61974 tests passed, 2 failed and 783 were skipped.
failed: LLVM.Bindings/Go/go.test failed: libc++.std/thread/thread_mutex/thread_mutex_requirements/thread_sharedtimedmutex_requirements/thread_sharedtimedmutex_class/try_lock.pass.cpp
clang-tidy: unknown.
clang-format: fail. Please format your changes with clang-format by running git-clang-format HEAD^ or applying this patch.
Build artifacts: diff.json, clang-format.patch, CMakeCache.txt, console-log.txt, test-results.xml
clang/lib/CodeGen/TargetInfo.cpp | ||
---|---|---|
741 | I was cargo culting the ARM targets here. It may be that some compilers get confused when the type and variable have the same name in this situation? | |
clang/test/CodeGen/wasm-arguments.c | ||
19–20 | I think there is some value in having the comments describe the expected stable behavior and let the "EXPERIMENTAL" speak for itself. The only thing I can think of adding to the comment is "... in non-experimental ABIs", but that doesn't seem too valuable to have. | |
102 | Unions cannot be represented precisely in LLVM IR. I believe they are just represented as their largest component, as this one is. From an ABI point of view it is either an int or a struct containing a single int, both of which are passed by value in our ABI. |
clang/lib/CodeGen/TargetInfo.cpp | ||
---|---|---|
741 | I don't think so. We have many cases that use the same name for a parameter and its corresponding field in constructors. | |
clang/test/CodeGen/wasm-arguments.c | ||
19–20 | Then we can maybe add one-line comment for EXPERIMENTAL-MVs too in case its results deviates from MVP? |
Nit: Do we need _?