aboutsummaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* Suggestion to update llvm-cxxfilt logic (#6451)gh-11685Ofek2024-05-08
| | | | | | | | | | | | (1) Restore explicit specification of `group.*.demangler=/opt/compiler-explorer/clang-trunk/bin/llvm-cxxfilt` for all clang compiler groups, except bpf and windows. (2) Make the ClangCompiler` constructor adjust the path of `llvm-cxxfilt`, so that a compiler-local version is preferred, if one exists. (3) Pass-by update: bump the version of llvmDisassembler from clang-14 to clang-18.1. Hopefully this addresses all demangling issues known so far.
* Update customCwd for profman in dex2oat (#6454)gh-11684kevinjeon-g2024-05-08
|
* Fix exception in case of empty IR (#6450)gh-11668Ofek2024-05-07
| | | | This fixes #6449 - I carelessly ignored the case of empty IR output. Repro link for verification: https://godbolt.org/z/4d46dahqq
* Fix #6437: Don't try and generate cfg for incomplete (truncated) IR (#6444)gh-11649Ofek2024-05-06
|
* Fix test break introduced inadvertently in #6422gh-11594Jeremy2024-05-02
|
* 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.
* Fix #6301 (#6422)ramang-unity2024-05-03
|
* Update dex2oat.tsgh-11578Patrick Quist2024-05-01
|
* fix dex2oat profile issuePatrick Quist2024-05-01
|
* Add profile support for dex2oat. (#6382)gh-11554kevinjeon-g2024-04-29
| | | | | | | | | | | | dex2oat supports profile-guided compilation. In addition to taking dex code as an input, it can take a profile as another input, to guide the compilation. The profile determines which methods need to be compiled, how calls can be inlined, and so on. Because Compiler Explorer doesn't support multiple input files, the profile is added as a comment block in the Java/Kotlin source code. A post-processor extracts the profile from the comment block into a separate file, in order to input it to dex2oat.
* Fix duplicated filters in logging (#6399)gh-11528Patrick Quist2024-04-27
|
* Removed UseDynamicNumberOfCompilerThreads command-line argument when running ↵gh-11519Filippo Barbari2024-04-25
| | | | | | | | | on java <11 (#6397) This fixes #6388. --------- Co-authored-by: Rubén Rincón Blanco <git@rinconblanco.es>
* Opt remarks: replace hover-over-sidebar display with inline text (#6393)gh-11512Ofek2024-04-25
| | | ![inlineoptrem](https://github.com/compiler-explorer/compiler-explorer/assets/73080/6c306b3f-2256-4578-b1d3-beaa1494a083)
* Migrate to eslint-plugin-n; as ...-node is deprecated (#6387)gh-11484Matt Godbolt2024-04-23
| | | Replaces #6310
* Major bumps (#6385)gh-11478Matt Godbolt2024-04-22
| | | | | - enhanced-ms and fix - css-loader - vitest
* More structured logging of compiles (#5105)gh-11468Matt Godbolt2024-04-22
|
* fix editiongh-11464partouf2024-04-22
|
* revert #6297 - fixes #6376gh-11463partouf2024-04-22
|
* Dynamic instruction set for documentation (#6173)gh-11461Patrick Quist2024-04-22
|
* Fix #5657gh-11441Patrick Quist2024-04-20
|
* Propagate java/kotlin errors to D8 (#6374)gh-11439kevinjeon-g2024-04-20
|
* eslint root setting and fixes (#6307)gh-11409Patrick Quist2024-04-16
|
* fix part of the windows tests (#6351)gh-11339Patrick Quist2024-04-15
|
* Add simple filters for llvm optimiziation-remarks (#6354)gh-11322Ofek2024-04-15
| | | ![optremfilters](https://github.com/compiler-explorer/compiler-explorer/assets/73080/1116998b-de9e-400c-a045-412fd59eb8e3)
* Use rustfmt from the latest rust release (#6326)gh-11319Mats Jun2024-04-14
| | | | | | | | | | | | The current Rust formatter on site doesn't support modern rust syntax like async/await. This is because the formatter in production runs using Rust 2015. Forcing edition=2018 allows more modern rust code to be formatted properly. Rustfmt is also shipped directly as a Rust component now, so we don't have to install it separately. For what it's worth, attempting to "Ctrl Shift I" format the code in this shortlink demonstrates the problem https://godbolt.org/z/aP4669KEW
* Fix missed demangles (#6350)gh-11305Jeremy Rifkin2024-04-13
| | | | | | | | | | This PR fixes missed demangle cases pointed out in #6348, namely of the form `mov eax, OFFSET FLAT:_Z...` and `jmp qword ptr [rip + _Z...]`. Closes #6348. --------- Co-authored-by: Patrick Quist <partouf@gmail.com>
* Support compilation with boot image for Android (#6346)gh-11294kevinjeon-g2024-04-13
| | | | | | | | | | | | | | | | Updates dex2oat to specify a valid boot image for accurate compilations. For example, these two methods should now (correctly) compile to the same native code: ``` static int insertAndReturn(int num) { int[] arr = {num}; return arr[0]; } static int justReturn(int num) { return num; } ```
* Update dex2oat input arguments (#6340)gh-11284kevinjeon-g2024-04-13
| | | | | Adds '--copy-dex-files=always', as it is needed in newer versions of dex2oat. This doesn't affect older versions.
* Simplify Android compiler properties (#6334)gh-11283kevinjeon-g2024-04-13
| | | | | updates intermediate compiler exe input to refer to the compiler's getInfo().exe so that paths don't need to be hardcoded in properties.
* Fix Sentry Issue (#6349)gh-11282Ofek2024-04-13
| | | | | | | | | | | | | | <!-- 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! -->
* [julia] Add LLVM IrView (#6285)gh-11202Mosè Giordano2024-04-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Julia is based on LLVM like other toolchains supported by Compiler Explorer, and it can emit LLVM IR, but at the moment we only expose it via the flag `--format=llvm` to the compiler wrapper. With this PR we add a proper LLVM IR viewer, like the other LLVM-based toolchains. We add a new option for the wrapper to emit the entire LLVM module, which has the benefit of being parsable by Compiler Explorer, so that we can automatically filter out debug information and metadata annotations. Preview (from https://github.com/compiler-explorer/compiler-explorer/issues/4597#issuecomment-2018956112): ![image](https://github.com/compiler-explorer/compiler-explorer/assets/765740/7c2f80b4-9c92-4761-9f6e-393d0ad26935) We removed the custom `<[source code line] [number of output lines] [function name] [method types]>` line in the output of the `code_*` functions, together with the custom ASM parsing, because they invalidate the output (it isn't valid ASM nor LLVM), and create more problems than they solve. This PR was prepared in collaboration with @vchuravy. This should eventually address #4597, once inlined LLVM functions are handled by the IR parser in Compiler Explorer, I think @vchuravy can comment more on that issue. --------- Co-authored-by: Valentin Churavy <v.churavy@gmail.com>
* Optionally show disambiguating hashes in demangled Rust identifiers (#6265)gh-11201narpfel2024-04-01
| | | | | | | | | | | | | | | | | | | | | | Demangled Rust identifiers under the `legacy` name mangling scheme rely on a hash to disambiguate items with the same name, such as different monomorphisations of the same function or different closures’ `call_once` methods. In the `v0` mangling scheme, this is no longer a problem. However, configuring the demangler to show hashes in `legacy` names will include crate-id hashes in `v0` names, which are [mostly unneeded](https://rust-lang.github.io/rfcs/2603-rust-symbol-name-mangling-v0.html#appendix-a---suggested-demangling). This PR introduces a new checkbox *Options...* → *Verbose demangling* that lets the user select if they want to include disambiguating hashes in demangled identifiers. This checkbox is only shown for compilers that support verbose demangling, and deactivated when the *Demangle identifiers* checkbox is unchecked. Resolves #1754. Resolves #6255.
* Handle the case where clang had no buildenvsetup. Closes #6303 (#6305)gh-11158Matt Godbolt2024-03-30
|
* socket bugfix for some situationsgh-11136Patrick Quist2024-03-30
|
* Integrate zksolc (#4398)gh-11126Oleksandr Zarudnyi2024-03-29
|
* fix filtergh-11118partouf2024-03-29
|
* Add MadPascal (#6286)gh-11117Patrick Quist2024-03-29
|
* Filter linker switches to avoid bogus warnings (#6297)gh-11108Ofek2024-03-28
| | | Fixes #6271
* For clang cross-compiles with libc++, explicitly add `-I../include/x86_64… ↵gh-11085Ofek2024-03-25
| | | | (#6277)
* [julia] Do not modify in-place `options` in `runCompiler` (#6281)gh-11069Mosè Giordano2024-03-25
|
* Refuse to run llvm-mca with "Compile to binary object" (#6276)gh-11058Ofek2024-03-23
| | | Fixes #5735
* 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>
* Allow overriding clang demangler from properties (#6228)gh-10989Ofek2024-03-16
| | | | | Specifically bpf uses group.bpf.demangler (gcc demangler) This fix continues #6114.
* Revert "builtin.ts: treat EXAMPLES_PATH as relative to app root." (#6246)gh-10979Kait Lam2024-03-14
| | | | | | Reverts compiler-explorer/compiler-explorer#6237. This PR broke the recommended `make run` workflow. When using `make run`, the dist folder does not contain the needed resources.
* builtin.ts: treat EXAMPLES_PATH as relative to app root. (#6237)gh-10945Kait Lam2024-03-10
| | | | | | | | | I feel this is the least surprising behaviour most of the time. This will help when packaging and distributing the application. It may also make sense to base this at rootDir, but examples/ sits outside etc/ at the moment and I didn't want to disturb that too much. Thanks!
* 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.
* Add digit separators to long numbers in numeric tooltip (#6221)gh-10881narpfel2024-03-05
| | | | | | | | | | | | | | | | | | | | | Long numbers are sometimes hard to read in the numeric tooltip. To improve readability, this PR adds language-specific digit separators to the numeric tooltip. Decimal numbers are grouped into chunks of three digits while hexadecimal numbers are grouped into chunks of length four. The digit separator is language-specific and chosen so that the number is a valid token in the source language. [Examples](https://godbolt.org/z/s86cMbjeK): * for C++, hovering the number `8583909746840200552` shows this tooltip: `8'583'909'746'840'200'552 = 0x7720'2C6F'6C6C'6568 = 6.5188685003648344e+265` * for Python, hovering the number `-12345678` shows this tooltip: `-123_456_789 = 0xFFFF_FFFF_F8A4_32EB = -2.66427945e+34f` For languages that don’t have a `digitSeparator` set, the tooltip is not changed.
* Support colour background for think-cell (#6223)gh-10880Matt Godbolt2024-03-05
|
* [Spice] Also apply abort-after-dump option to assembly output (#6203)gh-10829Marc Auberer2024-03-02
|