lean4-htt/src/Lean/Compiler
Henrik Böving b8c53b1d29
chore: remove IR elim dead branches (#11576)
This PR removes the old ElimDeadBranches pass and shifts the new one
past lambda lifting.

The reason for dropping the old one is its general unsoundness and the
fact that we want to do refactorings on the IR part. The reason for
shifting the current pass past lambda lifting, is that its analysis is
imprecise in the presence of local function symbols. I experimented with
the exact placement for a while and it seems like it is optimal here.
Overall we observe a slight regression in the amount of C code
generated, likely because we don't propagate information into lambdas
before lifting them anymore. But generally measure a slight performance
improvement in general.
2025-12-11 10:39:02 +00:00
..
IR chore: remove IR elim dead branches (#11576) 2025-12-11 10:39:02 +00:00
LCNF chore: remove IR elim dead branches (#11576) 2025-12-11 10:39:02 +00:00
BorrowedAnnotation.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
ClosedTermCache.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
CSimpAttr.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
ExportAttr.lean chore: rename Substring to Substring.Raw (#11154) 2025-11-16 09:30:04 +00:00
ExternAttr.lean chore: rename String.ValidPos to String.Pos (#11240) 2025-11-24 16:40:21 +00:00
FFI.lean refactor: use String.split instead of String.splitOn or String.splitToList (#11250) 2025-11-19 09:35:19 +00:00
ImplementedByAttr.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
InitAttr.lean fix: symbol clashes between packages (#11082) 2025-11-19 02:24:44 +00:00
InlineAttrs.lean feat: dedicated fix operator for well-founded recursion on Nat (#7965) 2025-12-01 12:51:55 +00:00
IR.lean chore: remove IR elim dead branches (#11576) 2025-12-11 10:39:02 +00:00
LCNF.lean feat: zero cost BaseIO (#10625) 2025-10-22 10:55:12 +02:00
Main.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
MetaAttr.lean chore: make declMetaExt persistent for shake (#11201) 2025-11-16 20:11:56 +00:00
ModPkgExt.lean fix: symbol clashes between packages (#11082) 2025-11-19 02:24:44 +00:00
NameMangling.lean chore: rename String.ValidPos to String.Pos (#11240) 2025-11-24 16:40:21 +00:00
NeverExtractAttr.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00
NoncomputableAttr.lean refactor: module-ize Lean (#9330) 2025-07-25 12:02:51 +00:00
Old.lean refactor: use String.Slice in String.take and variants (#11180) 2025-11-18 16:13:48 +00:00
Options.lean chore: do not set unused Option.Decl.group (#11307) 2025-11-21 16:44:38 +00:00
Specialize.lean chore: remove redundant imports in core (#10750) 2025-10-16 20:27:46 +00:00