summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly/select.ll
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Optimize away return instructions using fallthroughs.Dan Gohman2016-05-211-2/+2
| | | | | | | | | This saves a small amount of code size, and is a first small step toward passing values on the stack across block boundaries. Differential Review: http://reviews.llvm.org/D20450 llvm-svn: 270294
* [WebAssembly] Fast-isel support for calls, arguments, and selects.Dan Gohman2016-05-121-1/+1
| | | | llvm-svn: 269273
* [WebAssembly] Update the select instructions' operand orders to match the spec.Dan Gohman2016-02-051-12/+12
| | | | llvm-svn: 259893
* [WebAssembly] Add -m:e to the target triple.Dan Gohman2016-01-071-1/+1
| | | | | | | This enables ELF-style name mangling, which primarily means using ".L" for private symbols. llvm-svn: 257020
* [WebAssembly] Fold setne and seteq comparisons into selects.Dan Gohman2015-11-251-34/+126
| | | | llvm-svn: 254104
* [WebAssembly] Suffix output operands with '='.Dan Gohman2015-11-231-8/+8
| | | | | | | | This distinguishes input operands from output operands. This is something of a syntactic experiment to see whether the mild amount of clutter this adds is outweighed by the extra information it conveys to the reader. llvm-svn: 253922
* [WebAssembly] Enable register coloring and register stackifying.Dan Gohman2015-11-181-12/+8
| | | | | | | | | | | | | | | | This also takes the push/pop syntax another step forward, introducing stack slot numbers to make it easier to see how expressions are connected. For example, the value pushed in $push7 is popped in $pop7. And, this begins an experiment with making get_local and set_local implicit when an operation directly uses or defines a register. This greatly reduces clutter. If this experiment succeeds, it may make sense to do this for const instructions as well. And, this introduces more special code for ARGUMENTS; hopefully this code will soon be obviated by proper support for live-in virtual registers. llvm-svn: 253465
* [WebAssembly] Make indentation consistent with the other testcases. NFC.Dan Gohman2015-11-141-12/+12
| | | | llvm-svn: 253149
* [WebAssembly] Reapply r252858, with svn add for the new file.Dan Gohman2015-11-121-28/+12
| | | | | | | | | | | | | | | | | | | | | | Switch to MC for instruction printing. This encompasses several changes which are all interconnected: - Use the MC framework for printing almost all instructions. - AsmStrings are now live. - This introduces an indirection between LLVM vregs and WebAssembly registers, and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping. This addresses some basic issues with argument registers and unused registers. - The way ARGUMENT instructions are handled no longer generates redundant get_local+set_local for every argument. This also changes the assembly syntax somewhat; most notably, MC's printing does not use sigils on label names, so those are no longer present, and push/pop now have a sigil to keep them unambiguous. The usage of set_local/get_local/$push/$pop will continue to evolve significantly. This patch is just one step of a larger change. llvm-svn: 252910
* Revert r252858: "[WebAssembly] Switch to MC for instruction printing."Hans Wennborg2015-11-121-12/+28
| | | | | | | | It broke the CMake build: "Cannot find source file: WebAssemblyRegNumbering.cpp" llvm-svn: 252897
* [WebAssembly] Switch to MC for instruction printing.Dan Gohman2015-11-121-28/+12
| | | | | | | | | | | | | | | | | | | | This encompasses several changes which are all interconnected: - Use the MC framework for printing almost all instructions. - AsmStrings are now live. - This introduces an indirection between LLVM vregs and WebAssembly registers, and a new pass, WebAssemblyRegNumbering, for computing a basic the mapping. This addresses some basic issues with argument registers and unused registers. - The way ARGUMENT instructions are handled no longer generates redundant get_local+set_local for every argument. This also changes the assembly syntax somewhat; most notably, MC's printing use sigils on label names, so those are no longer present, and push/pop now have a sigil to keep them unambiguous. The usage of set_local/get_local/$push/$pop will continue to evolve significantly. This patch is just one step of a larger change. llvm-svn: 252858
* [WebAssembly] Add more explicit pushes to the tests.Dan Gohman2015-11-061-8/+8
| | | | llvm-svn: 252344
* [WebAssembly] Make expression-stack pushing explicitDan Gohman2015-11-061-8/+8
| | | | | | | | | Modelling of the expression stack is evolving. This patch takes another step by making pushes explicit. Differential Revision: http://reviews.llvm.org/D14338 llvm-svn: 252334
* Address nitDerek Schuff2015-11-031-32/+32
| | | | llvm-svn: 252004
* [WebAssembly] Support wasm select operatorDerek Schuff2015-11-031-0/+63
Summary: Add support for wasm's select operator, and lower LLVM's select DAG node to it. Reviewers: sunfish Subscribers: dschuff, llvm-commits, jfb Differential Revision: http://reviews.llvm.org/D14295 llvm-svn: 252002
OpenPOWER on IntegriCloud