Removes the path-based exe sniffing in `lib/instructionsets.ts` (which
silently mistagged compilers in any non-Amazon install layout) and the
constructor fallback in `lib/base-compiler.ts` that triggered it. Every
compiler's instructionSet now comes from properties — guaranteed by the
new `findCompilersWithoutInstructionSet` validator added in the previous
commit.
What's kept and why
- `instructionSetFromTargetString(target)`: maps an LLVM-style triple
(`aarch64-linux-gnu`, `x86_64-pc-windows-msvc`, …) to an InstructionSet.
Used solely by `getInstructionSetFromCompilerArgs` to detect runtime
`-target=foo` / `-march=foo` overrides so the asm view re-renders for
the right arch. This is a lookup, not a heuristic — the user is
explicitly stating the target.
- `tripleForInstructionSet(iset)`: inverse mapping for llvm-mca's
`-mtriple=foo`.
Both share one small explicit table; nothing else from the old class
survives. The 24 empty entries (`dex`, `python`, `evm`, etc.) that
existed solely to satisfy `Record<InstructionSet, …>` are gone.
Closes#8690.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>