From: Chris Lattner Date: Mon, 24 Jan 2005 02:08:34 +0000 (+0000) Subject: This giant patch speeds up Type::isSized(). Before, this would have to search X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d23a298f28209e1faa47c01482d5815ebb95d6d0;p=oota-llvm.git This giant patch speeds up Type::isSized(). Before, this would have to search large nested types over and over again to determine if they are sized or not. Now, isSized() is able to make snap decisions about all concrete types, which are a common occurance (and includes all primitives). On 177.mesa, this speeds up DSE from 39.5s -> 21.3s and GCSE from 13.2s -> 11.3s, reducing gccas time from 80s -> 61s (this is a debug build). DSE and GCSE are still too slow on this testcase, but this is a simple improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19800 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Type.h b/include/llvm/Type.h index 20a3d6d03ef..2aac381d0bd 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -201,8 +201,7 @@ public: /// TargetData subsystem to do this. /// bool isSized() const { - return (ID >= BoolTyID && ID <= DoubleTyID) || ID == PointerTyID || - isSizedDerivedType(); + return !isAbstract() || ID == PointerTyID || isSizedDerivedType(); } /// getPrimitiveSize - Return the basic size of this type if it is a primitive