AST_FLAG_COVERAGE = 1 << 12,
AST_FLAG_BLOCK_COVERAGE = 1 << 13,
+ /*
+ * Propagates norefness to the IR so the unused (read/write) check can be
+ * more intelligently done.
+ */
+ AST_FLAG_NOREF = 1 << 14,
+
AST_FLAG_LAST,
AST_FLAG_TYPE_MASK = (AST_FLAG_VARIADIC | AST_FLAG_NORETURN),
AST_FLAG_COVERAGE_MASK = (AST_FLAG_BLOCK_COVERAGE)
void addParam(ast_value*);
- bool generateGlobal(ir_builder*, bool isfield);
+ bool generateGlobal(ir_builder&, bool isfield);
bool generateLocal(ir_function*, bool param);
- bool generateAccessors(ir_builder*);
+ bool generateAccessors(ir_builder&);
std::string m_name;
std::string m_desc;
*/
std::vector<basic_value_t> m_initlist;
- /* usecount for the parser */
- size_t m_uses = 0;
-
ir_value *m_ir_v = nullptr;
std::vector<ir_value*> m_ir_values;
size_t m_ir_value_count = 0;
bool m_intrinsic = false; /* true if associated with intrinsic */
private:
- bool generateGlobalFunction(ir_builder*);
- bool generateGlobalField(ir_builder*);
- ir_value *prepareGlobalArray(ir_builder*);
+ bool generateGlobalFunction(ir_builder&);
+ bool generateGlobalField(ir_builder&);
+ ir_value *prepareGlobalArray(ir_builder&);
bool setGlobalArray();
bool checkArray(const ast_value &array) const;
};
~ast_function();
const char* makeLabel(const char *prefix);
- virtual bool generateFunction(ir_builder*);
+ virtual bool generateFunction(ir_builder&);
ast_value *m_function_type = nullptr;
std::string m_name;