summary refs log tree commit diff
path: root/compiler/rustc_middle/src/thir
AgeCommit message (Collapse)AuthorLines
2022-04-14Reimplement lowering of sym operands for asm! so that it also works with ↵Amanieu d'Antras-2/+2
global_asm!
2022-04-06get rid of visit_constant in thir visitorb-naber-2/+8
2022-04-02rebase and use ty::Const in patterns againb-naber-1/+0
2022-04-02do use ty::Const in patterns and abstract constsb-naber-6/+1
2022-04-02change thir to use mir::ConstantKind instead of ty::Constb-naber-1/+10
2022-03-23use NonHirLiteral instead of ScalarLiteral, move pattern related code to ↵b-naber-1/+1
pat_is_poly in IsThirPolymorphic
2022-03-23use ParamConst in ExprKind::ConstParamb-naber-1/+1
2022-03-23remove thir::Visitor::visit_constb-naber-11/+4
2022-03-23change thir to lazily create constantsb-naber-2/+5
2022-03-08mention ignored fields of ExprKind::StaticRefb-naber-1/+1
2022-03-08treat literals in ExprKind::StaticRef as mir::ConstantKind::Valb-naber-1/+1
2022-03-02rename ErrorReported -> ErrorGuaranteedmark-5/+5
2022-02-20Revert "Auto merge of #93800 - b-naber:static-initializers-mir-val, r=oli-obk"Mark Rousskov-1/+1
This reverts commit a240ccd81c74c105b6f5fe84c46f8d36edb7e306, reversing changes made to 393fdc10483da930cdbb00eabc3635030d2e776f. This PR was likely responsible for a relatively large regression in dist-x86_64-msvc-alt builder times, from approximately 1.7 to 2.8 hours, bringing that builder into the pool of the slowest builders we currently have. This seems to be limited to the alt builder due to needing parallel-compiler enabled, likely leading to slow LLVM compilation for some reason.
2022-02-15use AllocId and Ty in ExprKind::StaticRef and delay ConstValue constructionb-naber-1/+1
2022-02-15Overhaul `Const`.Nicholas Nethercote-3/+3
Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as this: ``` pub struct Const<'tcx>(&'tcx Interned<ConstS>); ``` This now matches `Ty` and `Predicate` more closely, including using pointer-based `eq` and `hash`. Notable changes: - `mk_const` now takes a `ConstS`. - `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a we need separate arena for it, because we can't use the `Dropless` one any more. - Many `&'tcx Const<'tcx>`/`&Const<'tcx>` to `Const<'tcx>` changes - Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes. - Lots of tedious sigil fiddling.
2022-01-12Remove deprecated LLVM-style inline assemblyTomasz Miąsko-8/+0
2021-09-09add a `CastKind` to `Node::Cast`Ellen-1/+9
2021-09-09nitsEllen-5/+24
2021-09-09rename mir -> thir around abstract constsEllen-0/+276