@@ -155,6 +155,7 @@ class Function final {
155155
156156 // / Checks if the function is virtual.
157157 bool isVirtual () const { return Virtual; };
158+ bool isImmediate () const { return Immediate; }
158159
159160 // / Checks if the function is a constructor.
160161 bool isConstructor () const { return Kind == FunctionKind::Ctor; }
@@ -276,22 +277,32 @@ class Function final {
276277 // / List of parameter offsets.
277278 llvm::SmallVector<unsigned , 8 > ParamOffsets;
278279 // / Flag to indicate if the function is valid.
279- bool IsValid = false ;
280+ LLVM_PREFERRED_TYPE (bool )
281+ unsigned IsValid : 1 ;
280282 // / Flag to indicate if the function is done being
281283 // / compiled to bytecode.
282- bool IsFullyCompiled = false ;
284+ LLVM_PREFERRED_TYPE (bool )
285+ unsigned IsFullyCompiled : 1 ;
283286 // / Flag indicating if this function takes the this pointer
284287 // / as the first implicit argument
285- bool HasThisPointer = false ;
288+ LLVM_PREFERRED_TYPE (bool )
289+ unsigned HasThisPointer : 1 ;
286290 // / Whether this function has Return Value Optimization, i.e.
287291 // / the return value is constructed in the caller's stack frame.
288292 // / This is done for functions that return non-primive values.
289- bool HasRVO = false ;
293+ LLVM_PREFERRED_TYPE (bool )
294+ unsigned HasRVO : 1 ;
290295 // / If we've already compiled the function's body.
291- bool HasBody = false ;
292- bool Defined = false ;
293- bool Variadic = false ;
294- bool Virtual = false ;
296+ LLVM_PREFERRED_TYPE (bool )
297+ unsigned HasBody : 1 ;
298+ LLVM_PREFERRED_TYPE (bool )
299+ unsigned Defined : 1 ;
300+ LLVM_PREFERRED_TYPE (bool )
301+ unsigned Variadic : 1 ;
302+ LLVM_PREFERRED_TYPE (bool )
303+ unsigned Virtual : 1 ;
304+ LLVM_PREFERRED_TYPE (bool )
305+ unsigned Immediate : 1 ;
295306
296307public:
297308 // / Dumps the disassembled bytecode to \c llvm::errs().
0 commit comments