aboutsummaryrefslogtreecommitdiff
path: root/lib/parsers
Commit message (Collapse)AuthorAge
* Hanfle filtering `tail call void @llvm.dbg.*` in LLVM IR (#6425)dzaima2024-05-02
| | | | | | | | Fixes #6416. Additionally escapes a dot in another copy of an `@llvm.dbg` check. Didn't find any existing tests for IR filtering to update where this filter applies, but did make sure locally that it does start hiding the instructions for clang-17 and clang-18.
* eslint root setting and fixes (#6307)gh-11409Patrick Quist2024-04-16
|
* fix part of the windows tests (#6351)gh-11339Patrick Quist2024-04-15
|
* Add MadPascal (#6286)gh-11117Patrick Quist2024-03-29
|
* chore: remove repetitive words (#6247)gh-10990standstaff2024-03-16
| | | | | | | | | | | | | | | | <!-- THIS COMMENT IS INVISIBLE IN THE FINAL PR, BUT FEEL FREE TO REMOVE IT Thanks for taking the time to improve CE. We really appreciate it. Before opening the PR, please make sure that the tests & linter pass their checks, by running `make check`. In the best case scenario, you are also adding tests to back up your changes, but don't sweat it if you don't. We can discuss them at a later date. Feel free to append your name to the CONTRIBUTORS.md file Thanks again, we really appreciate this! --> Signed-off-by: standstaff <zhengxingru@yeah.net>
* Replace the deprecated `substr` with `substring` (#6236)gh-10941Ofek2024-03-10
| | | Just some minor homekeeping.
* Vitest (#6219)gh-10925Matt Godbolt2024-03-08
| | | | Port to vitest. Port everything to typescript. Remove chai, mocha and chai-as-promised. Adds some docs.
* Accept tail calls for llvm.dbg filters (#6129)gh-10612Marc Auberer2024-02-12
| | | | | | | This adds support for filtering tail calls to `llvm.dbg.*` intrinsics using the regex-based filter mechanism. Previously, normal calls were filtered out, but tail calls are not caught by the regex so they remained in the output. Example with the previous state: https://play.spicelang.com/z/MGGn98
* [SPIR-V parser] Filter OpMemberName as directive (#6106)gh-10539Cassandra Beckley2024-02-09
| | | Filter `OpMemberName` as directive, to be consistent with `OpName`.
* Add support for dex2oat (latest) (#5916)gh-10184kevinjeon-g2024-01-15
| | | | | | | Adds Dex2OatCompiler, which applies to the Android Java and Android Kotlin languages. Dex2OatCompiler runs on .dex files output by D8Compiler, which in turn runs on .class files output by JavaCompiler or KotlinCompiler. A parser has been added for dex2oat optimization passes.
* Handle ir and machine functions separately in OptPipeline (#5902)gh-10067Anirudh Sundar Subramaniam2024-01-08
| | | | | | | | | | | | This patch makes a small change in how functions are handled while parsing LLVM opt pipeline output. Specifically, it differentiates between IR function and machine function, and while checking for the close of function, it only checks if the corresponding function is open. This was needed because in some targets like hexagon, the machine functions could contain `BUNDLE`s as part of the dump and `BUNDLE`s are also represented with opening and closing braces ({}). This was causing assertion because the close brace for a BUNDLE was considered to be a IR function close statement.
* Prettier the files, and ensure the checks check that next timegh-9932Matt Godbolt2023-12-11
|
* Add Racket optimisation pipeline (#5836)gh-9905J. Ryan Stinnett2023-12-11
| | | | | | | | | | | | | | | | | | | | | This adds a Racket optimisation pipeline view by reusing the existing LLVM-focused optimisation pipeline UI. A Racket-specific pass parser translates its output into passes for the UI to present. This new Racket optimisation pipeline view is currently only enabled for Racket nightly, as it depends on [recent changes](https://github.com/racket/racket/pull/4842) to Racket's compiler output to function. This also extends the opt pipeline view to allow customising the function selector label as well as the options and filters for each compiler where needed. ![image](https://github.com/compiler-explorer/compiler-explorer/assets/279572/f540b41e-fd55-4375-bb2d-a0bb977530b3) --------- Co-authored-by: Matt Godbolt <matt@godbolt.org>
* Update deps, format, lint, bump workaround versiongh-9806Matt Godbolt2023-12-03
|
* Rename opt pipeline without LLVM prefix (#5828)gh-9794J. Ryan Stinnett2023-12-03
| | | | | | | | | | | This prepares for future work that will reuse the opt pipeline view outside of the LLVM ecosystem by renaming related components to remove the LLVM prefix. The pass dumper keep its LLVM prefix, as it is assumed this part is likely to be customised for each compiler ecosystem. The historical component name has been preserved in the component list as an alias to keep old links working.
* Fix #4931 and #2218 (#5706)gh-9504Ofek2023-11-11
|
* Fix another ReDoS vulnerability, turns out this was exploitable too with the ↵gh-9151Jeremy2023-10-21
| | | | same input
* Fix ReDoS vulnerability in the z88dk assembly parser, regex was exploitable ↵gh-9150Jeremy2023-10-20
| | | | with relatively short inputs and could be used to freeze a node for extended periods of time
* support new IR Dump header (#5603)gh-9085Patrick Quist2023-10-15
|
* Bump all the things forward (#5563)gh-8956Matt Godbolt2023-10-05
| | | also run the lint and format nonsense
* asm-parser: Recognize more dataDefn directives (#5535)gh-8922fghzxm2023-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds more data definition directives to be recognized by `AsmParser` in lib/parsers/asm-parser.ts. Fixes #5489, as well as inappropriate filtering of `.double` directives in test/filter-cases/diab.asm which is similar to #5489. The list of data directives are taken from the "Assembler Directives" chapter of the [GNU `as` manual][as]. Directives added by this patch are: - `.dc[size]` - `.dcb[size]` - `.ds[size]` - `.double` - `.fill` - `.float` - `.int` - `.single` - `.skip` - `.space` - `.string8`, `.string16`, `.string32`, `.string64` The `.space` directive is not a data directive when assembling for the HPPA architecture; this must be fixed if HPPA support is to be added to Compiler Explorer. Some of the directives such as `.string64` are pretty unlikely to be emitted by actual compilers, but we add them because it can't break existing input (no `as`-compatible compiler can use them as non-data directives), and will futureproof us against future compilers that do emit them. Architecture-specific directives documented in the "Machine Dependent Features" chapter are not added in this patch, even though it may be better to add some of them (such as `.stringz`) as well. Existing directives that are not found on the "Assembler Directives" list are not removed. `.sleb128` and `.uleb128` are technically data directives, but aren't added because we assume they're only used in debuginfo. [as]: https://sourceware.org/binutils/docs-2.41/as/index.html <!-- THIS COMMENT IS INVISIBLE IN THE FINAL PR, BUT FEEL FREE TO REMOVE IT Thanks for taking the time to improve CE. We really appreciate it. Before opening the PR, please make sure that the tests & linter pass their checks, by running `make check`. In the best case scenario, you are also adding tests to back up your changes, but don't sweat it if you don't. We can discuss them at a later date. Feel free to append your name to the CONTRIBUTORS.md file Thanks again, we really appreciate this! -->
* fixgh-8682partouf2023-09-04
|
* Improve SPIR-V parser (#5441)Cassandra Beckley2023-09-04
|
* Use the SPIR-V parser for DXC SPIR-V output (#5418)gh-8674Cassandra Beckley2023-09-04
|
* Bring back crossgen2 (#5415)gh-8591Steve2023-08-24
| | | | | | | | It turns out we still need crossgen2 for net6.0. So bring crossgen2 back for net6.0 only. Also fix some bugs around `indexOf`. No image rebuilding is required.
* Use corerun and DisassemblyLoader for dotnet (#5391)gh-8577Steve2023-08-23
| | | | | | | | | | Depends on https://github.com/compiler-explorer/dotnet-builder/pull/4 - Use corerun instead of crossgen2 to do disassemble - This can skip emitting actual executable by crossgen2 and speed up the compilation - Filter disasm to only show disasm for user code We need to rebuild images for old compilers.
* New Compiler: Hexagon-clang (#5330)gh-8367quic-rvarghes2023-08-07
| | | | | | | | | | | | | | | | **Related to:** compiler-explorer/infra#1061 **Goal:-** To enable back-end support for hexagon clang compiler so that it can be used on the Compiler Explorer's website ([https://godbolt.org/.](https://godbolt.org/)) This will be particularly useful to people working on Hexagon Digital Signal Processor (DSP) developed by Qualcomm Technologies. **Information about Hexagon DSP:-** [https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor](https://developer.qualcomm.com/software/hexagon-dsp-sdk/dsp-processor) Co-authored-by: Ryan Sam Varghese <rvarghes@qti.qualcomm.com>
* Library code filter fix (#5204)gh-8054Patrick Quist2023-07-03
|
* Fix the comment test regex for dotnet (#5229)gh-8052Steve2023-07-03
|
* AsmParser update for dotnet (#5227)gh-8041Steve2023-07-02
|
* Common utilities and type work (#5200)gh-8021Jeremy Rifkin2023-06-28
| | | | | This PR refactors some common utilities out of lib/ and into shared/ and eliminates some use of underscore.js, as well as general type improvements done along the way.
* Identify unused imports during lint (#5130)Jeremy Rifkin2023-06-11
|
* Add minimal TI-C2000 compiler support (#4625)gh-7049Jeremy Overesch2023-04-05
| | | This adds the ability to use TI's C2000 compiler with basic directive filtering and assembly code parsing.
* add properties and test for cewrapper (#4761)gh-6911Patrick Quist2023-03-18
|
* fix z88dk asm (#4751)gh-6680Patrick Quist2023-03-07
|
* Transition to ECMAScript Modules (#4780)gh-6536Mats Jun Larsen2023-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes the Compiler Explorer app, and all the tooling ESM compatible. Things that have been done: 1. The package.json has `type: module` now 2. All relative imports have a .js ending 3. All directory imports are now directory/index.js to comply with ESM standards 4. Dependency node-graceful is now imported into tree, because the package is broken under esm 5. Dependency p-queue has been bumped to 7.x with ESM support 6. Dependency profanities has been bumped to 3.x with ESM support 7. Webpack config is now both ESM and CommonJS compatible 8. Non-ESM compatible imports have been rewritten 9. ESLint configuration has been tweaked to not fail on .js imports 10. Mocha is now hacked together and ran with ts-node-esm 11. Webpack is now hacked together and ran with ts-node-esm 12. Webpack config is now ESM compatible, so that it can be used in the dev server 13. Cypress code still runs commonjs, and has been excluded from the tsconfig 14. All sinon mock tests have been commented out, because sinon module mocks do not work with ESModules (because ESModules are immutable) A lot of tests are now giving warnings/errors to stdout, yet still pass. Docenizer codegenerator scripts have been updated, but I did not re-run them, and instead just changed their code. --------- Co-authored-by: Matt Godbolt <matt@godbolt.org>
* Remove an assertion now that we know the case can happen (#4787)gh-6507Jeremy Rifkin2023-02-26
| | | | Resolves #4781. Remove the assertion, just allow the bad behavior silently. Same behavior as before the tsification.
* Fix trailing comma issue (#4775)gh-6504Jeremy Rifkin2023-02-26
| | | | | Make trailing commas more consistent throughout the project, fixes config conflict between eslint and prettier. Resolves an oversight in #4766.
* Handle another LLVM pass dump case (#4774)gh-6451Jeremy Rifkin2023-02-24
| | | Resolves #4195
* Turn some auto-fixable eslint rules back on (#4766)gh-6434Jeremy Rifkin2023-02-23
| | | | | | This PR turns comma-dangle and indent eslint rules on for lib/. These are rules inherited from the eslint config for static/, this PR just makes things more consistent. Also turned @typescript-eslint/no-var-requires back on while I was here.
* Tsify the rest of lib/tooling (#4718)gh-6264Jeremy Rifkin2023-02-12
| | | | | | | | | | | | | | <!-- THIS COMMENT IS INVISIBLE IN THE FINAL PR, BUT FEEL FREE TO REMOVE IT Thanks for taking the time to improve CE. We really appreciate it. Before opening the PR, please make sure that the tests & linter pass their checks, by running `make check`. In the best case scenario, you are also adding tests to back up your changes, but don't sweat it if you don't. We can discuss them at a later date. Feel free to append your name to the CONTRIBUTORS.md file Thanks again, we really appreciate this! -->
* TS-i-fy VC (#4690)gh-6212Matt Godbolt2023-02-09
| | | | | This is _very_ similar to ewavr but I chose not to update that. @partouf points that's proprietary so probably best left alone too.
* TSify the z88dk parser (#4691)gh-6148Matt Godbolt2023-02-04
|
* tsify turboc (#4679)gh-6128Matt Godbolt2023-02-02
|
* TSify sass (#4678)gh-6097Matt Godbolt2023-02-01
|
* tsify ewavr (#4667)gh-6091Matt Godbolt2023-02-01
|
* Ts-ify dart (#4665)gh-6070Matt Godbolt2023-01-30
|
* tsify crystal (#4666)gh-6069Matt Godbolt2023-01-30
|
* tsify asm-parser-beebasm (#4664)gh-6063Matt Godbolt2023-01-30
|
* Convert asmamdgpu to ts (#4653)gh-6044Matt Godbolt2023-01-29
|