aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers/clangcl.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compilers/clangcl.ts')
-rw-r--r--lib/compilers/clangcl.ts12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/compilers/clangcl.ts b/lib/compilers/clangcl.ts
index 3b182496a..25c40c41c 100644
--- a/lib/compilers/clangcl.ts
+++ b/lib/compilers/clangcl.ts
@@ -29,6 +29,7 @@ import type {ParseFiltersAndOutputOptions} from '../../types/features/filters.in
import {Win32Compiler} from './win32.js';
import {unwrap} from '../assert.js';
+import {LLVMIrBackendOptions} from '../../types/compilation/ir.interfaces.js';
export class ClangCLCompiler extends Win32Compiler {
static override get key() {
@@ -45,7 +46,12 @@ export class ClangCLCompiler extends Win32Compiler {
this.compiler.includeFlag = '/clang:-isystem';
}
- override async generateIR(inputFilename: string, options: string[], filters: ParseFiltersAndOutputOptions) {
+ override async generateIR(
+ inputFilename: string,
+ options: string[],
+ irOptions: LLVMIrBackendOptions,
+ filters: ParseFiltersAndOutputOptions,
+ ) {
// These options make Clang produce an IR
const newOptions = options
.filter(option => option !== '/FA' && !option.startsWith('/Fa'))
@@ -59,11 +65,11 @@ export class ClangCLCompiler extends Win32Compiler {
if (output.code !== 0) {
return [{text: 'Failed to run compiler to get IR code'}];
}
- const ir = await this.processIrOutput(output, filters);
+ const ir = await this.processIrOutput(output, irOptions, filters);
return ir.asm;
}
- override getIrOutputFilename(inputFilename: string, filters: ParseFiltersAndOutputOptions): string {
+ override getIrOutputFilename(inputFilename: string): string {
return this.filename(path.dirname(inputFilename) + '/output.s.obj');
}