Mercurial > projects > ldc
view ir/irdtype.cpp @ 1219:a0844cc67840
Tweak some optimizations.
Delegates passed to inlined functions now also stand a chance of being inlined.
This should make opApply as efficient as a regular loop, as long as both opApply
and the foreachbody are eligible for inlining; which is to say most non-virtual
opApply invocations will likely get fully inlined now.
(Note: above requires -O2 -enable-inlining or -O3)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Thu, 16 Apr 2009 11:58:43 +0200 |
parents | a6dbd571d417 |
children | 2a92c115461d |
line wrap: on
line source
#include "gen/llvm.h" #include "ir/ir.h" #include "ir/irdtype.h" std::set<IrDType*> IrDType::list; void IrDType::resetAll() { std::set<IrDType*>::iterator it; for(it = list.begin(); it != list.end(); ++it) (*it)->reset(); } IrDType::IrDType() { assert(list.insert(this).second); reset(); } IrDType::IrDType(const IrDType& s) { assert(list.insert(this).second); type = s.type; } IrDType::~IrDType() { list.erase(this); } void IrDType::reset() { type = NULL; }