diff options
author | partouf <partouf@gmail.com> | 2022-05-12 16:54:43 +0200 |
---|---|---|
committer | partouf <partouf@gmail.com> | 2022-05-12 16:54:43 +0200 |
commit | bb8f3b8c9a7cefeeada15d4811765e281681352c (patch) | |
tree | f6a55027ac73736895d3e4a6faa233514a9f3888 /lib/compilers | |
parent | cb7a772e4a64f2c1c78725aef8b1d6687884456e (diff) | |
parent | bd362118e0d2c1e3fbab52f32cb9090b833ba2b5 (diff) | |
download | compiler-explorer-bb8f3b8c9a7cefeeada15d4811765e281681352c.tar.gz compiler-explorer-bb8f3b8c9a7cefeeada15d4811765e281681352c.zip |
Merge branches 'bbcmicrothings' and 'main' of https://github.com/compiler-explorer/compiler-explorer into main
Diffstat (limited to 'lib/compilers')
-rw-r--r-- | lib/compilers/clean.js | 3 | ||||
-rw-r--r-- | lib/compilers/ispc.js | 21 | ||||
-rw-r--r-- | lib/compilers/typescript.js | 24 |
3 files changed, 45 insertions, 3 deletions
diff --git a/lib/compilers/clean.js b/lib/compilers/clean.js index 2d81b28bd..26dfc28c6 100644 --- a/lib/compilers/clean.js +++ b/lib/compilers/clean.js @@ -1,6 +1,3 @@ -/** - * @prettier - */ // Copyright (c) 2018, Compiler Explorer Authors // All rights reserved. // diff --git a/lib/compilers/ispc.js b/lib/compilers/ispc.js index 8c1481b8a..897c0976f 100644 --- a/lib/compilers/ispc.js +++ b/lib/compilers/ispc.js @@ -22,7 +22,11 @@ // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. +import Semver from 'semver'; +import _ from 'underscore'; + import {BaseCompiler} from '../base-compiler'; +import {asSafeVer} from '../utils'; import {ISPCParser} from './argument-parsers'; @@ -37,6 +41,10 @@ export class ISPCCompiler extends BaseCompiler { this.compiler.irArg = ['--emit-llvm-text']; } + couldSupportASTDump(version) { + return Semver.gte(asSafeVer(this.compiler.semver), '1.18.0', true); + } + optionsForFilter(filters, outputFilename) { let options = ['--target=avx2-i32x8', '--emit-asm', '-g', '-o', this.filename(outputFilename)]; if (this.compiler.intelAsm && filters.intel && !filters.binary) { @@ -54,6 +62,19 @@ export class ISPCCompiler extends BaseCompiler { return ISPCParser; } + async generateAST(inputFilename, options) { + // These options make Clang produce an AST dump + const newOptions = _.filter(options, option => option !== '--colored-output').concat(['--ast-dump']); + + const execOptions = this.getDefaultExecOptions(); + // A higher max output is needed for when the user includes headers + execOptions.maxOutput = 1024 * 1024 * 1024; + + return this.llvmAst.processAst( + await this.runCompiler(this.compiler.exe, newOptions, this.filename(inputFilename), execOptions), + ); + } + isCfgCompiler(/*compilerVersion*/) { return true; } diff --git a/lib/compilers/typescript.js b/lib/compilers/typescript.js index 732e482ca..19da2b5cb 100644 --- a/lib/compilers/typescript.js +++ b/lib/compilers/typescript.js @@ -1,3 +1,27 @@ +// Copyright (c) 2022, Compiler Explorer Authors +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. + import {BaseCompiler} from '../base-compiler'; import {TypeScriptNativeParser} from './argument-parsers'; |