aboutsummaryrefslogtreecommitdiff
path: root/lib/parsers/llvm-pass-dump-parser.ts
diff options
context:
space:
mode:
authorOfek <ofekshilon@gmail.com>2022-11-06 19:22:47 +0200
committerGitHub <noreply@github.com>2022-11-06 12:22:47 -0500
commitdb9b4f48b0e7d1574711466a32b5dacefd86c22d (patch)
tree61a7966dd4bf266da12a8185d69e15277b7d5148 /lib/parsers/llvm-pass-dump-parser.ts
parentd57274d622092a90587e4ac9fca9b98a6772b665 (diff)
downloadcompiler-explorer-db9b4f48b0e7d1574711466a32b5dacefd86c22d.tar.gz
compiler-explorer-db9b4f48b0e7d1574711466a32b5dacefd86c22d.zip
Add `Hide metadata` option to LLVM pipeline (#4243)gh-4756
Diffstat (limited to 'lib/parsers/llvm-pass-dump-parser.ts')
-rw-r--r--lib/parsers/llvm-pass-dump-parser.ts12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/parsers/llvm-pass-dump-parser.ts b/lib/parsers/llvm-pass-dump-parser.ts
index 5e1704e84..ef4ae12b9 100644
--- a/lib/parsers/llvm-pass-dump-parser.ts
+++ b/lib/parsers/llvm-pass-dump-parser.ts
@@ -84,6 +84,7 @@ export class LlvmPassDumpParser {
lineFilters: RegExp[];
debugInfoFilters: RegExp[];
debugInfoLineFilters: RegExp[];
+ metadataLineFilters: RegExp[];
irDumpHeader: RegExp;
machineCodeDumpHeader: RegExp;
functionDefine: RegExp;
@@ -119,6 +120,12 @@ export class LlvmPassDumpParser {
];
this.debugInfoLineFilters = [
/,? !dbg !\d+/, // instruction/function debug metadata
+ /,? debug-location !\d+/, // Direct source locations like 'example.cpp:8:1' not filtered
+ ];
+
+ // Conditionally enabled by `filterIRMetadata`
+ this.metadataLineFilters = [
+ /,?(?: ![\d.A-Za-z]+){2}/, // any instruction metadata
];
// Ir dump headers look like "*** IR Dump After XYZ ***"
@@ -454,13 +461,16 @@ export class LlvmPassDumpParser {
}
applyIrFilters(ir: ResultLine[], llvmOptPipelineOptions: LLVMOptPipelineBackendOptions) {
- // Additional filters conditionally enabled by `filterDebugInfo`
+ // Additional filters conditionally enabled by `filterDebugInfo`/`filterIRMetadata`
let filters = this.filters;
let lineFilters = this.lineFilters;
if (llvmOptPipelineOptions.filterDebugInfo) {
filters = filters.concat(this.debugInfoFilters);
lineFilters = lineFilters.concat(this.debugInfoLineFilters);
}
+ if (llvmOptPipelineOptions.filterIRMetadata) {
+ lineFilters = lineFilters.concat(this.metadataLineFilters);
+ }
return (
ir