| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
This new syntax is built around putting each instruction on its own line
in a "mnemonic op, op, op" like syntax. It also uses conventional data
section directives like ".byte" and so on rather than requiring everything
to be in hierarchical S-expression format. This is a more natural syntax
for a ".s" file format from the perspective of LLVM MC and related tools,
while remaining easy to translate into other forms as needed.
llvm-svn: 249364
|
| |
|
|
|
|
|
| |
This is a temporary assembly syntax that will likely evolve along with
broader upcoming syntax changes.
llvm-svn: 249225
|
| |
|
|
| |
llvm-svn: 249218
|
| |
|
|
| |
llvm-svn: 249187
|
| |
|
|
| |
llvm-svn: 249184
|
| |
|
|
| |
llvm-svn: 249178
|
| |
|
|
| |
llvm-svn: 249171
|
| |
|
|
| |
llvm-svn: 248716
|
| |
|
|
| |
llvm-svn: 248644
|
| |
|
|
|
|
|
|
|
|
| |
This reverts r248388 and fixes the underlying bug: hasAddr64 was initialized
in runOnMachineFunction, but runOnMachineFunction isn't ever called in
CodeGen/WebAssembly/global.ll since that testcase has no functions. The fix
here is to use AsmPrinter's getPointerSize() as needed to determine the
pointer size instead.
llvm-svn: 248394
|
| |
|
|
| |
llvm-svn: 248388
|
| |
|
|
| |
llvm-svn: 247870
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This pass implements a simple algorithm for conversion from CFG to
wasm's structured control flow. It doesn't yet handle multiple-entry
loops; that will be added in a future patch.
It also adds initial support for switch statements.
Differential Revision: http://reviews.llvm.org/D12735
llvm-svn: 247818
|
| |
|
|
| |
llvm-svn: 247649
|
| |
|
|
| |
llvm-svn: 247158
|
| |
|
|
| |
llvm-svn: 247152
|
| |
|
|
| |
llvm-svn: 247118
|
| |
|
|
| |
llvm-svn: 247110
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
CodeGen passes
This allows backends which don't use a traditional register allocator,
but do need PHI lowering and other passes, to use the default
TargetPassConfig::addFastRegAlloc and
TargetPassConfig::addOptimizedRegAlloc implementations.
Differential Revision: http://reviews.llvm.org/D12691
llvm-svn: 247065
|
| |
|
|
|
|
| |
Renamed from: https://github.com/WebAssembly/design/pull/332
llvm-svn: 247028
|
| |
|
|
| |
llvm-svn: 247008
|
| |
|
|
|
|
|
|
|
| |
Summary: This handles all load/store operations that WebAssembly defines, and handles those necessary for C++ such as i1. I left a FIXME for outstanding features which aren't required for now.
Reviewers: sunfish
Subscribers: jfb, llvm-commits, dschuff
llvm-svn: 246500
|
| |
|
|
| |
llvm-svn: 246101
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Things of note:
- Other linkage types aren't handled yet. We'll figure it out with dynamic linking.
- Special LLVM globals are either ignored, or error out for now.
- TLS isn't supported yet (WebAssembly will have threads later).
- There currently isn't a syntax for alignment, I left it in a comment so it's easy to hook up.
- Undef is convereted to whatever the type's appropriate null value is.
- assert versus report_fatal_error: follow what other AsmPrinters do, and assert only on what should have been caught elsewhere.
llvm-svn: 246092
|
| |
|
|
|
|
| |
Suggested by @sunfish as a follow-up to r245982.
llvm-svn: 245996
|
| |
|
|
|
|
| |
WebAssembly will either use globals or immediates, since it's a virtual ISA.
llvm-svn: 245989
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Match spec format: https://github.com/WebAssembly/spec/blob/master/ml-proto/test/fac.wasm
Reviewers: sunfish
Subscribers: llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D12307
llvm-svn: 245986
|
| |
|
|
|
|
| |
Do the same for .weak (not implemented for now, but may as well to it). Update comment string to two semicolons.
llvm-svn: 245982
|
| |
|
|
| |
llvm-svn: 245893
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary: Support function calls.
Reviewers: sunfish, sunfishcode
Subscribers: sunfishcode, jfb, llvm-commits
Differential revision: http://reviews.llvm.org/D12219
llvm-svn: 245887
|
| |
|
|
|
|
|
|
|
|
| |
Summary: I forgot to squash git commits before doing an svn dcommit of D12219. Reverting, and re-submitting.
Subscribers: jfb, llvm-commits
Differential Revision: http://reviews.llvm.org/D12298
llvm-svn: 245886
|
| |
|
|
| |
llvm-svn: 245883
|
| |
|
|
| |
llvm-svn: 245882
|
| |
|
|
| |
llvm-svn: 245875
|
| |
|
|
| |
llvm-svn: 245872
|
| |
|
|
| |
llvm-svn: 245860
|
| |
|
|
| |
llvm-svn: 245859
|
| |
|
|
| |
llvm-svn: 245853
|
| |
|
|
| |
llvm-svn: 245852
|
| |
|
|
| |
llvm-svn: 245851
|
| |
|
|
| |
llvm-svn: 245636
|
| |
|
|
|
|
|
|
|
| |
Previously WebAssembly's datalayout string had -v128:8:128. This had been an
attempt to declare a certain level of support for unaligned SIMD accesses.
However, clang makes its own determinations for SIMD alignment that are
independent of the datalayout string, so this wasn't actually meaningful.
llvm-svn: 245494
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is just an initial checkin of an implementation of the Relooper algorithm, in preparation for WebAssembly codegen to utilize. It doesn't do anything yet by itself.
The Relooper algorithm takes an arbitrary control flow graph and generates structured control flow from that, utilizing a helper variable when necessary to handle irreducibility. The WebAssembly backend will be able to use this in order to generate an AST for its binary format.
Author: azakai
Reviewers: jfb, sunfish
Subscribers: jevinskie, arsenm, jroelofs, llvm-commits
Differential revision: http://reviews.llvm.org/D11691
llvm-svn: 245142
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
D11924 implemented part of the floating-point comparisons, this patch implements the rest:
* Tell ISelLowering that all booleans are either 0 or 1.
* Expand the eq/ne/lt/le/gt/ge floating-point comparisons to the canonical ones (similar to what Mips32r6InstrInfo.td does).
* Add tests for ord/uno.
* Add tests for ueq/one/ult/ule/ugt/uge.
* Fix existing comparison tests to remove the (res & 1) code, which setBooleanContents stops from generating.
Reviewers: sunfish
Subscribers: llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D11970
llvm-svn: 244779
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some of the FP comparisons (ueq, one, ult, ule, ugt, uge) are currently broken, I'll fix them in a follow-up.
Reviewers: sunfish
Subscribers: llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D11924
llvm-svn: 244665
|
| |
|
|
|
|
|
|
|
|
| |
Summary: Implementation is the same as in AArch64.
Subscribers: aemerson, jfb, llvm-commits, sunfish
Differential Revision: http://reviews.llvm.org/D11956
llvm-svn: 244655
|
| |
|
|
| |
llvm-svn: 244641
|
| |
|
|
|
|
|
|
|
|
| |
Summary: Caused by D11914, pointed out by blaikie.
Subscribers: llvm-commits, jfb, dblaikie
Differential Revision: http://reviews.llvm.org/D11929
llvm-svn: 244570
|
| |
|
|
|
|
|
|
|
|
| |
Summary: I somehow forgot to add these when I added the basic floating-point opcodes. Also remove ceil/floor/trunc/nearestint for now, and add them only when properly tested.
Subscribers: llvm-commits, sunfish, jfb
Differential Revision: http://reviews.llvm.org/D11927
llvm-svn: 244562
|
| |
|
|
|
|
|
|
|
|
| |
Summary: convertToHexString doesn't represent them correctly at this point in time. This is a follow-up to sunfish's suggestion in D11914.
Subscribers: llvm-commits, sunfish, jfb
Differential Revision: http://reviews.llvm.org/D11925
llvm-svn: 244551
|