mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 20:11:12 +01:00
Add a no-op builtin function which shouldn't generate code. (#5306)
This is part of a broader plan to have noop destructor functions for trivial destruction. Note this emits a SemIR call (`%no_op: init %empty_tuple.type = call %NoOp.ref() [concrete = constants.%empty_tuple]`), but not LLVM IR. My thought was this was probably okay, since even though it'll be a little spammy with destructor calls, the flipside is there'll probably already be a fair amount for the name reference, and this at least shows when the call is injected (and discarded). --------- Co-authored-by: Chandler Carruth <chandlerc@gmail.com>
This commit is contained in:
co-authored by
Chandler Carruth
parent
da83b65aa2
commit
b49e89e97e
@@ -218,6 +218,8 @@ using FloatT = TypeParam<0, AnyFloat>;
|
||||
// Not a builtin function.
|
||||
constexpr BuiltinInfo None = {"", nullptr};
|
||||
|
||||
constexpr BuiltinInfo NoOp = {"no_op", ValidateSignature<auto()->NoReturn>};
|
||||
|
||||
// Prints a single character.
|
||||
constexpr BuiltinInfo PrintChar = {
|
||||
"print.char", ValidateSignature<auto(AnySizedInt)->AnySizedInt>};
|
||||
|
||||
Reference in New Issue
Block a user