Files
compiler-explorer/views/templates/templates.pug
LJ 5a15d893d7 Add support for Yul intermediate view when compiling Solidity (#8219)
## What

Adds support for seeing Yul (Solidity IR) as intermediate output when
compiling Solidity.

This PR also enables that view for the Resolc compiler.

### Main Additions

- [x] Support viewing Yul in a supplementary view
- Solidity compilers can enable this by setting
`this.compiler.supportsYulView = true` in the compiler's constructor
- If custom processing of the Yul output or the Yul output filename is
needed, the compiler can override `processYulOutput()` or
`getYulOutputFilename()`
- [x] Enable the Yul view for Resolc
- [x] Implement a Yul backend option for filtering out debug info from
the output

### Notes

Source mappings are currently not handled for Yul -> Solidity.

## Overall Usage

### Steps

* Choose Solidity as the language
* Choose a Resolc compiler
* View intermediate results:
  * Yul
* (Hide/show debug info by toggling "Hide Debug Info" in the Yul view
filters)

## Screenshots

<img width="1502" height="903" alt="ce-yul-view"
src="https://github.com/user-attachments/assets/ccc897e2-cd8d-4c33-962c-522d60b63134"
/>
2025-11-04 09:00:19 -06:00

94 lines
1.4 KiB
Plaintext

mixin monacopane(id)
div(id=id)
.top-bar.btn-toolbar.bg-light(role="toolbar")
include ../font-size
.monaco-placeholder
.gl_keep.template
include panes/codeEditor
include panes/compiler
include panes/executor
include panes/compiler-output
include panes/tool-output
include panes/diff
include panes/pp
include panes/ir
include panes/clangir
include panes/opt-view
include panes/opt-pipeline
include panes/device
include panes/gccdump
include panes/cfg
include panes/conformance
include panes/tree
include panes/explain
include panes/yul
include widgets/compiler-selector
include widgets/libs-dropdown
include widgets/libs-entry
include widgets/share-item
include widgets/lib-selected-tpl
include widgets/lib-favorite-tpl
include widgets/lib-search-result-tpl
include widgets/tree-editor-tpl
include widgets/possible-override-tpl
include widgets/possible-runtime-tool-tpl
include widgets/overrides-favorite-tpl
+monacopane("stackusage")
+monacopane("flags")
+monacopane("ast")
+monacopane("tool-input")
+monacopane("gnatdebugtree")
+monacopane("gnatdebug")
+monacopane("rustmir")
+monacopane("haskellCore")
+monacopane("haskellStg")
+monacopane("haskellCmm")
+monacopane("rustmacroexp")
+monacopane("rusthir")
+monacopane("clojuremacroexp")
+monacopane("yul")