@@ -537,7 +538,7 @@ assert(isa<PHINode>(Succ->front()) && "Only works on PHId BBs!"
@@ -572,7 +573,24 @@ namespace (and its parents), but should not use any others.
+
+
+
+
If a class is defined in a header file and has a v-table (either it has
+virtual methods or it derives from classes with virtual methods), it must
+always have at least one out-of-line virtual method in the class. Without
+this, the compiler will copy the vtable and RTTI into every .o file that
+#includes the header, bloating .o file sizes and increasing link times.
+
+
+
+
+
+
+
@@ -592,7 +610,7 @@ get in the habit of always using preincrement, and you won't have a problem.
diff --git a/llvm/lib/Target/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
similarity index 100%
rename from llvm/lib/Target/TargetLowering.cpp
rename to llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff --git a/llvm/lib/Transforms/Scalar/LowerAllocations.cpp b/llvm/lib/Transforms/Utils/LowerAllocations.cpp
similarity index 100%
rename from llvm/lib/Transforms/Scalar/LowerAllocations.cpp
rename to llvm/lib/Transforms/Utils/LowerAllocations.cpp
diff --git a/llvm/lib/Transforms/Scalar/LowerInvoke.cpp b/llvm/lib/Transforms/Utils/LowerInvoke.cpp
similarity index 100%
rename from llvm/lib/Transforms/Scalar/LowerInvoke.cpp
rename to llvm/lib/Transforms/Utils/LowerInvoke.cpp
diff --git a/llvm/lib/Transforms/Scalar/LowerSelect.cpp b/llvm/lib/Transforms/Utils/LowerSelect.cpp
similarity index 100%
rename from llvm/lib/Transforms/Scalar/LowerSelect.cpp
rename to llvm/lib/Transforms/Utils/LowerSelect.cpp
diff --git a/llvm/lib/Transforms/Scalar/LowerSwitch.cpp b/llvm/lib/Transforms/Utils/LowerSwitch.cpp
similarity index 100%
rename from llvm/lib/Transforms/Scalar/LowerSwitch.cpp
rename to llvm/lib/Transforms/Utils/LowerSwitch.cpp
diff --git a/llvm/lib/Transforms/Scalar/Mem2Reg.cpp b/llvm/lib/Transforms/Utils/Mem2Reg.cpp
similarity index 100%
rename from llvm/lib/Transforms/Scalar/Mem2Reg.cpp
rename to llvm/lib/Transforms/Utils/Mem2Reg.cpp
diff --git a/llvm/lib/CodeGen/ValueTypes.cpp b/llvm/lib/VMCore/ValueTypes.cpp
similarity index 100%
rename from llvm/lib/CodeGen/ValueTypes.cpp
rename to llvm/lib/VMCore/ValueTypes.cpp