Skip to content

Commit 38acfbb

Browse files
authored
pyk: added --llvm-hidden-visibility attribute (#4714)
1 parent 29aedd7 commit 38acfbb

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

pyk/src/pyk/__main__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,7 @@ def exec_kompile(options: KompileCommandOptions) -> None:
324324
kompile_dict['llvm_kompile_output'] = options.llvm_kompile_output
325325
kompile_dict['llvm_proof_hint_instrumentation'] = options.llvm_proof_hint_instrumentation
326326
kompile_dict['llvm_proof_hint_debugging'] = options.llvm_proof_hint_debugging
327+
kompile_dict['llvm_hidden_visibility'] = options.llvm_hidden_visibility
327328
elif len(options.ccopts) > 0:
328329
raise ValueError(f'Option `-ccopt` requires `--backend llvm`, not: --backend {options.backend.value}')
329330
elif options.enable_search:
@@ -344,6 +345,10 @@ def exec_kompile(options: KompileCommandOptions) -> None:
344345
raise ValueError(
345346
f'Option `--llvm-proof-hint-debugging` requires `--backend llvm`, not: --backend {options.backend.value}'
346347
)
348+
elif options.llvm_hidden_visibility:
349+
raise ValueError(
350+
f'Option `--llvm-hidden-visibility` requires `--backend llvm`, not: --backend {options.backend.value}'
351+
)
347352

348353
try:
349354
Kompile.from_dict(kompile_dict)(

pyk/src/pyk/cli/args.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ class KompileOptions(Options):
194194
llvm_kompile_output: Path | None
195195
llvm_proof_hint_instrumentation: bool
196196
llvm_proof_hint_debugging: bool
197+
llvm_hidden_visibility: bool
197198
read_only: bool
198199
o0: bool
199200
o1: bool
@@ -220,6 +221,7 @@ def default() -> dict[str, Any]:
220221
'llvm_kompile_output': None,
221222
'llvm_proof_hint_instrumentation': False,
222223
'llvm_proof_hint_debugging': False,
224+
'llvm_hidden_visibility': False,
223225
'read_only': False,
224226
'o0': False,
225227
'o1': False,
@@ -479,6 +481,13 @@ def kompile_args(self) -> ArgumentParser:
479481
action='store_true',
480482
help='Enable additional proof hint debugging information in LLVM backend kompilation.',
481483
)
484+
args.add_argument(
485+
'--llvm-hidden-visibility',
486+
dest='llvm_hidden_visibility',
487+
default=None,
488+
action='store_true',
489+
help='Whether to make all symbols hidden by default in LLVM backend kompilation.',
490+
)
482491

483492
args.add_argument(
484493
'--no-exc-wrap',

pyk/src/pyk/ktool/kompile.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,7 @@ class LLVMKompile(Kompile):
428428
enable_llvm_debug: bool
429429
llvm_proof_hint_instrumentation: bool
430430
llvm_proof_hint_debugging: bool
431+
llvm_hidden_visibility: bool
431432
llvm_mutable_bytes: bool
432433
iterated_threshold: Fraction | None
433434
heuristic: str | None
@@ -445,6 +446,7 @@ def __init__(
445446
enable_llvm_debug: bool = False,
446447
llvm_proof_hint_instrumentation: bool = False,
447448
llvm_proof_hint_debugging: bool = False,
449+
llvm_hidden_visibility: bool = False,
448450
llvm_mutable_bytes: bool = False,
449451
iterated_threshold: Fraction | None = None,
450452
heuristic: str | None = None,
@@ -468,6 +470,7 @@ def __init__(
468470
object.__setattr__(self, 'enable_llvm_debug', enable_llvm_debug)
469471
object.__setattr__(self, 'llvm_proof_hint_instrumentation', llvm_proof_hint_instrumentation)
470472
object.__setattr__(self, 'llvm_proof_hint_debugging', llvm_proof_hint_debugging)
473+
object.__setattr__(self, 'llvm_hidden_visibility', llvm_hidden_visibility)
471474
object.__setattr__(self, 'llvm_mutable_bytes', llvm_mutable_bytes)
472475
object.__setattr__(self, 'iterated_threshold', iterated_threshold)
473476
object.__setattr__(self, 'heuristic', heuristic)
@@ -507,6 +510,9 @@ def args(self) -> list[str]:
507510
if self.llvm_proof_hint_debugging:
508511
args += ['--llvm-proof-hint-debugging']
509512

513+
if self.llvm_hidden_visibility:
514+
args += ['--llvm-hidden-visibility']
515+
510516
if self.llvm_mutable_bytes:
511517
args += ['--llvm-mutable-bytes']
512518

0 commit comments

Comments
 (0)