Closed GoogleCodeExporter closed 8 years ago
Considering these lines:
@@ -456,7 +437,7 @@
.PHONY: llvm
ifeq (@BUILD_LLVM@, 1)
llvm:
- $(MAKE) -C Util/llvm tools-only ONLY_TOOLS="clang opt llvm-link llvm-dis"
+ $(MAKE) -C Util/llvm tools-only ONLY_TOOLS="clang opt llvm-link llvm-dis
llvm-config"
else
llvm: ;
endif
@@ -464,13 +445,19 @@
# Declare some of LLVM's build outputs to depend on LLVM. We only
# declare the ones that other files need to depend on.
$(LLVM_BIN_DIR)/clang $(LLVM_BIN_DIR)/opt $(LLVM_BIN_DIR)/llvm-link \
- $(LLVM_BIN_DIR)/llvm-dis $(LLVM_LIB_PATHS) \
+ $(LLVM_BIN_DIR)/llvm-dis $(LLVM_CONFIG) $(LLVM_LIB_PATHS) \
$(LLVM_INC_DIR)/llvm/Intrinsics.gen: llvm
@@ -1240,8 +1216,8 @@
.c.o:
$(CC) -c $(PY_CFLAGS) -o $@ $<
-%.o: %.cc $(LLVM_INC_DIR)/llvm/Intrinsics.gen
- $(CXX) -c $(LLVMCXXFLAGS) $(PY_CXXFLAGS) -o $@ $<
+%.o: %.cc $(LLVM_INC_DIR)/llvm/Intrinsics.gen $(LLVM_CONFIG)
+ $(CXX) -c $(LLVM_CXXFLAGS) $(PY_CXXFLAGS) -o $@ $<
I'm not entirely certain, but I think this may have something to do with the
*.cc files eventually depending on a phony[1] target; that is, a
target which is *always* rebuilt. I'd suggest checking if using an order-only
prerequisites[2] solves it, like this:
%.o: %.cc | …
The difference in semantics is that an order-only prerequisite is guaranteed to
be built *before* the target itself, but cannot invalidate it.
[1]
<http://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targ
ets>
[2]
<http://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html#Prere
quisite-Types>
Original comment by danchr
on 13 Jan 2010 at 1:48
Original comment by collinw
on 14 Jan 2010 at 12:14
Reid worked up a patch for this: http://codereview.appspot.com/190046/show
Original comment by collinw
on 20 Jan 2010 at 9:08
This was fixed in r1015.
New trunk@1024 incremental builds after touching listobject.c:
0m6.680s
0m5.310s
0m7.639s
Still slower, but that's from statically linking LLVM, which is a separate
issue.
Nice work, Reid.
Original comment by collinw
on 21 Jan 2010 at 9:41
Original issue reported on code.google.com by
collinw
on 13 Jan 2010 at 12:28