diff options
author | Ofek <ofekshilon@gmail.com> | 2022-11-06 19:22:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-06 12:22:47 -0500 |
commit | db9b4f48b0e7d1574711466a32b5dacefd86c22d (patch) | |
tree | 61a7966dd4bf266da12a8185d69e15277b7d5148 /lib/parsers/llvm-pass-dump-parser.ts | |
parent | d57274d622092a90587e4ac9fca9b98a6772b665 (diff) | |
download | compiler-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.ts | 12 |
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 |