[cfe-commits] r160851 - in /cfe/trunk/lib: ARCMigrate/CMakeLists.txt AST/CMakeLists.txt Analysis/CMakeLists.txt CodeGen/CMakeLists.txt Driver/CMakeLists.txt Edit/CMakeLists.txt Frontend/CMakeLists.txt FrontendTool/CMakeLists.txt Lex/CMakeLists.tx

NAKAMURA Takumi geek4civic at gmail.com
Fri Jul 27 19:15:41 PDT 2012


Chandler,

I would like dare to say; I prefer "simple, tweakable, robust, and
scalable" build scripts. ;)

FYI, I pushed my wip branches to github.

https://github.com/chapuni/llvm-project/commits/llvmbuild/trunk
https://github.com/chapuni/llvm-project/commits/cmakedep/trunk


2012/7/27 Chandler Carruth <chandlerc at google.com>:
>> I think it would not be the right way that preceding(dependent) rules
>> and actions satisfy generating headers.
>>
>> My intention is; Each of modules should have rules for itself to
>> generate required headers.
>
> I think we fundamentally disagree here. What rules generate which AST
> headers is an implementation detail of the AST library (for instance). I do
> not want that information leaked to users of the AST library, they should
> just depend on the AST library and be done with it.

Also it is odd. The generated headers needed by clangAST should not be
properties of clangAST, but public ones, I think.

Anyway, on ToT, dependencies for tblgen'd headers are still inconsistent.

0001.patch.txt - I tried to prune header deps extremely. Would it satisfy you?


>> I am working for;
>>
>>   - LLVMBuild-izing clang
>
> Why? I think this would be a step in the wrong direction. Currently Clang
> has no need of this -- adding it would add complexity and overhead to the
> understanding of the build system for no tangible gain.

I don't agree the word *wrong*.
I am certain we could get more clear and robust rules to introduce
LLLVMBuild to clang.
Note, LLVMBuild-generated libdeps may be available also on autoconf build.

One of options, I shall propose patches soon.
I have expected many objections would come. :D


>>   - Cutting inter-libs deps
>
> I think we need to preserve proper layering and *simple* deps that are
> easily understood. I also think we need the system to be simple, easy to
> understand, and easy for developers to get right. What you're proposing
> doesn't provide enough encapsulation for this.

I would like to propose when I am ready. To be convinced, I will show
you both patches and description then.


>> With them, "make -j100" reaches loadavg to 100.0 :p
>
> I have no such load problems today. I think there must be some other cause
> that only happens to be solved by the changes you are making, and frankly, I
> don't think the changes justify the cost.

It is not my point nor problem, excuse me. loadavg=100 is expected,
and good to me. :)
It says, 100 of processes could be processed in parallel, if I had
100-nodes distributed builder.
(I have not tried hundreds of parallelism. 32GB of RAM is too small)

In contrast, even with ninja -j100, loadavg reaches at most around 60,
without cutting deps.

As far as target_link_libraries() chokes dependencies, I would like to avoid it.
I could restore target_link_libraries() when its behavior were
improved to be scalabe.


>> I shall propose patches when I am ready. Please discuss then.
>
> No, we should discuss here. ;] You're already committing changes that
> violate the encapsulation we previously had, and otherwise shifting the
> cmake build in a direction that we've talked about before, and I've
> expressed specific objections to. I think we need to resolve the direction
> issues now. =D

I didn't suppose my last message was posted to the list for public
discussion, excuse me.

I don't understand what is violation. The patch is adding redundant
dependencies, and it is not adding extra dependencies.
I assumed it is "trivial but safe" and not specific to coming my patchset.


...Takumi
-------------- next part --------------
From c1bb7bc5790eafa4a2b992a9bef600c0f13a4523 Mon Sep 17 00:00:00 2001
From: NAKAMURA Takumi <geek4civic at gmail.com>
Date: Fri, 27 Jul 2012 21:26:14 +0900
Subject: [PATCH] [CMake] Prune header deps as possible. I don't hope it would be applied.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.4.1"

This is a multi-part message in MIME format.
--------------1.7.4.1
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


It assumes reverting r160849 and r160851.
---
 clang/lib/ARCMigrate/CMakeLists.txt              |    8 --------
 clang/lib/AST/CMakeLists.txt                     |    3 ---
 clang/lib/ASTMatchers/CMakeLists.txt             |    1 -
 clang/lib/Analysis/CMakeLists.txt                |    9 ---------
 clang/lib/Basic/CMakeLists.txt                   |    2 --
 clang/lib/CodeGen/CMakeLists.txt                 |    8 --------
 clang/lib/Driver/CMakeLists.txt                  |    2 --
 clang/lib/Edit/CMakeLists.txt                    |    4 ----
 clang/lib/Frontend/CMakeLists.txt                |   12 ------------
 clang/lib/FrontendTool/CMakeLists.txt            |    4 ----
 clang/lib/Lex/CMakeLists.txt                     |    1 -
 clang/lib/Parse/CMakeLists.txt                   |    6 ------
 clang/lib/Rewrite/CMakeLists.txt                 |    8 --------
 clang/lib/Sema/CMakeLists.txt                    |    8 --------
 clang/lib/Serialization/CMakeLists.txt           |    8 --------
 clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt |    6 ------
 clang/lib/StaticAnalyzer/Core/CMakeLists.txt     |    8 --------
 clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt |   10 ----------
 clang/lib/Tooling/CMakeLists.txt                 |    4 ----
 19 files changed, 0 insertions(+), 112 deletions(-)


--------------1.7.4.1
Content-Type: text/x-patch; name="0001-CMake-Prune-header-deps-as-possible.-I-don-t-hop.patch.txt"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-CMake-Prune-header-deps-as-possible.-I-don-t-hop.patch.txt"

diff --git a/clang/lib/ARCMigrate/CMakeLists.txt b/clang/lib/ARCMigrate/CMakeLists.txt
index ee64148..c5bf08c 100644
--- a/clang/lib/ARCMigrate/CMakeLists.txt
+++ b/clang/lib/ARCMigrate/CMakeLists.txt
@@ -20,14 +20,6 @@ add_clang_library(clangARCMigrate
   TransZeroOutPropsInDealloc.cpp
   )
 
-add_dependencies(clangARCMigrate
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangARCMigrate
   clangBasic
   clangAST
diff --git a/clang/lib/AST/CMakeLists.txt b/clang/lib/AST/CMakeLists.txt
index dc99084..d52242f 100644
--- a/clang/lib/AST/CMakeLists.txt
+++ b/clang/lib/AST/CMakeLists.txt
@@ -59,14 +59,11 @@ add_clang_library(clangAST
   )
 
 add_dependencies(clangAST
-  ClangARMNeon
   ClangAttrClasses
   ClangAttrList
   ClangAttrImpl
   ClangCommentNodes
   ClangDeclNodes
-  ClangDiagnosticAST
-  ClangDiagnosticComment
   ClangStmtNodes
   )
 
diff --git a/clang/lib/ASTMatchers/CMakeLists.txt b/clang/lib/ASTMatchers/CMakeLists.txt
index 8fc7d4b..4fe9c22 100644
--- a/clang/lib/ASTMatchers/CMakeLists.txt
+++ b/clang/lib/ASTMatchers/CMakeLists.txt
@@ -8,7 +8,6 @@ add_clang_library(clangASTMatchers
 
 add_dependencies(clangASTMatchers
   ClangAttrClasses
-  ClangAttrImpl
   ClangAttrList
   ClangCommentNodes
   ClangDeclNodes
diff --git a/clang/lib/Analysis/CMakeLists.txt b/clang/lib/Analysis/CMakeLists.txt
index 89042db..96f927e 100644
--- a/clang/lib/Analysis/CMakeLists.txt
+++ b/clang/lib/Analysis/CMakeLists.txt
@@ -18,15 +18,6 @@ add_clang_library(clangAnalysis
   UninitializedValues.cpp
   )
 
-add_dependencies(clangAnalysis
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangDiagnosticAnalysis
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangAnalysis
   clangBasic
   clangAST
diff --git a/clang/lib/Basic/CMakeLists.txt b/clang/lib/Basic/CMakeLists.txt
index 73e693b..b638816 100644
--- a/clang/lib/Basic/CMakeLists.txt
+++ b/clang/lib/Basic/CMakeLists.txt
@@ -35,7 +35,6 @@ endif()
 
 add_dependencies(clangBasic
   ClangARMNeon
-  ClangAttrList
   ClangDiagnosticAnalysis
   ClangDiagnosticAST
   ClangDiagnosticComment
@@ -43,7 +42,6 @@ add_dependencies(clangBasic
   ClangDiagnosticDriver
   ClangDiagnosticFrontend
   ClangDiagnosticGroups
-  ClangDiagnosticIndexName
   ClangDiagnosticLex
   ClangDiagnosticParse
   ClangDiagnosticSema
diff --git a/clang/lib/CodeGen/CMakeLists.txt b/clang/lib/CodeGen/CMakeLists.txt
index 6aa487d..b379c2e 100644
--- a/clang/lib/CodeGen/CMakeLists.txt
+++ b/clang/lib/CodeGen/CMakeLists.txt
@@ -50,14 +50,6 @@ add_clang_library(clangCodeGen
   TargetInfo.cpp
   )
 
-add_dependencies(clangCodeGen
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangCodeGen
   clangBasic
   clangAST
diff --git a/clang/lib/Driver/CMakeLists.txt b/clang/lib/Driver/CMakeLists.txt
index ee832d2..2d315c5 100644
--- a/clang/lib/Driver/CMakeLists.txt
+++ b/clang/lib/Driver/CMakeLists.txt
@@ -19,9 +19,7 @@ add_clang_library(clangDriver
   )
 
 add_dependencies(clangDriver
-  ClangAttrList
   ClangCC1AsOptions
-  ClangDiagnosticDriver
   ClangDriverOptions
   )
 
diff --git a/clang/lib/Edit/CMakeLists.txt b/clang/lib/Edit/CMakeLists.txt
index 391c571..2bb63a7 100644
--- a/clang/lib/Edit/CMakeLists.txt
+++ b/clang/lib/Edit/CMakeLists.txt
@@ -4,10 +4,6 @@ add_clang_library(clangEdit
   RewriteObjCFoundationAPI.cpp
   )
 
-add_dependencies(clangEdit
-  ClangDiagnosticCommon
-  )
-
 target_link_libraries(clangEdit
   clangBasic
   clangAST
diff --git a/clang/lib/Frontend/CMakeLists.txt b/clang/lib/Frontend/CMakeLists.txt
index 58a8f47..baa67b9 100644
--- a/clang/lib/Frontend/CMakeLists.txt
+++ b/clang/lib/Frontend/CMakeLists.txt
@@ -30,18 +30,6 @@ add_clang_library(clangFrontend
   Warnings.cpp
   )
 
-add_dependencies(clangFrontend
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangDiagnosticFrontend
-  ClangDiagnosticLex
-  ClangDiagnosticSema
-  ClangDriverOptions
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangFrontend
   clangAST
   clangBasic
diff --git a/clang/lib/FrontendTool/CMakeLists.txt b/clang/lib/FrontendTool/CMakeLists.txt
index 47cdf17..c5c123b 100644
--- a/clang/lib/FrontendTool/CMakeLists.txt
+++ b/clang/lib/FrontendTool/CMakeLists.txt
@@ -2,10 +2,6 @@ add_clang_library(clangFrontendTool
   ExecuteCompilerInvocation.cpp
   )
 
-add_dependencies(clangFrontendTool
-  ClangDiagnosticFrontend
-  )
-
 target_link_libraries(clangFrontendTool
   clangDriver
   clangFrontend
diff --git a/clang/lib/Lex/CMakeLists.txt b/clang/lib/Lex/CMakeLists.txt
index 7e19fd6..9ee8491 100644
--- a/clang/lib/Lex/CMakeLists.txt
+++ b/clang/lib/Lex/CMakeLists.txt
@@ -28,7 +28,6 @@ add_clang_library(clangLex
 
 add_dependencies(clangLex
   ClangAttrSpellings
-  ClangDiagnosticLex
   )
 
 target_link_libraries(clangLex
diff --git a/clang/lib/Parse/CMakeLists.txt b/clang/lib/Parse/CMakeLists.txt
index 941fce0..d072e13 100644
--- a/clang/lib/Parse/CMakeLists.txt
+++ b/clang/lib/Parse/CMakeLists.txt
@@ -15,13 +15,7 @@ add_clang_library(clangParse
   )
 
 add_dependencies(clangParse
-  ClangAttrClasses
   ClangAttrLateParsed
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangDiagnosticParse
-  ClangStmtNodes
   )
 
 target_link_libraries(clangParse
diff --git a/clang/lib/Rewrite/CMakeLists.txt b/clang/lib/Rewrite/CMakeLists.txt
index d8d90fa..3494fd4 100644
--- a/clang/lib/Rewrite/CMakeLists.txt
+++ b/clang/lib/Rewrite/CMakeLists.txt
@@ -14,14 +14,6 @@ add_clang_library(clangRewrite
   TokenRewriter.cpp
   )
 
-add_dependencies(clangRewrite
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangRewrite
   clangBasic
   clangAST
diff --git a/clang/lib/Sema/CMakeLists.txt b/clang/lib/Sema/CMakeLists.txt
index 515c5b6..3d86c9c 100644
--- a/clang/lib/Sema/CMakeLists.txt
+++ b/clang/lib/Sema/CMakeLists.txt
@@ -43,17 +43,9 @@ add_clang_library(clangSema
   )
 
 add_dependencies(clangSema
-  ClangARMNeon
-  ClangAttrClasses
-  ClangAttrList
   ClangAttrParsedAttrList
   ClangAttrParsedAttrKinds
   ClangAttrTemplateInstantiate
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangDiagnosticComment
-  ClangDiagnosticSema
-  ClangStmtNodes
   )
 
 target_link_libraries(clangSema
diff --git a/clang/lib/Serialization/CMakeLists.txt b/clang/lib/Serialization/CMakeLists.txt
index 874ce6e..7a3daf1 100644
--- a/clang/lib/Serialization/CMakeLists.txt
+++ b/clang/lib/Serialization/CMakeLists.txt
@@ -14,16 +14,8 @@ add_clang_library(clangSerialization
   )
 
 add_dependencies(clangSerialization
-  ClangAttrClasses
-  ClangAttrList
   ClangAttrPCHRead
   ClangAttrPCHWrite
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangDiagnosticLex
-  ClangDiagnosticSema
-  ClangDiagnosticSerialization
-  ClangStmtNodes
   )
 
 target_link_libraries(clangSerialization
diff --git a/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt b/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
index 16ba5da..4159800 100644
--- a/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
+++ b/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
@@ -70,12 +70,6 @@ add_clang_library(clangStaticAnalyzerCheckers
   )
 
 add_dependencies(clangStaticAnalyzerCheckers
-  clangStaticAnalyzerCore
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
   ClangSACheckers
   )
 
diff --git a/clang/lib/StaticAnalyzer/Core/CMakeLists.txt b/clang/lib/StaticAnalyzer/Core/CMakeLists.txt
index e4f70a9..0c59387 100644
--- a/clang/lib/StaticAnalyzer/Core/CMakeLists.txt
+++ b/clang/lib/StaticAnalyzer/Core/CMakeLists.txt
@@ -40,14 +40,6 @@ add_clang_library(clangStaticAnalyzerCore
   TextPathDiagnostics.cpp
   )
 
-add_dependencies(clangStaticAnalyzerCore
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangStaticAnalyzerCore
   clangBasic
   clangLex
diff --git a/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt b/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt
index c45326f..4000e96 100644
--- a/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt
+++ b/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt
@@ -8,16 +8,6 @@ add_clang_library(clangStaticAnalyzerFrontend
   FrontendActions.cpp
   )
 
-add_dependencies(clangStaticAnalyzerFrontend
-  clangStaticAnalyzerCheckers
-  clangStaticAnalyzerCore
-  ClangAttrClasses
-  ClangAttrList
-  ClangCommentNodes
-  ClangDeclNodes
-  ClangStmtNodes
-  )
-
 target_link_libraries(clangStaticAnalyzerFrontend
   clangBasic
   clangLex
diff --git a/clang/lib/Tooling/CMakeLists.txt b/clang/lib/Tooling/CMakeLists.txt
index 7e3547b..48c6690 100644
--- a/clang/lib/Tooling/CMakeLists.txt
+++ b/clang/lib/Tooling/CMakeLists.txt
@@ -9,10 +9,6 @@ add_clang_library(clangTooling
   Tooling.cpp
   )
 
-add_dependencies(clangTooling
-  ClangDiagnosticCommon
-  )
-
 target_link_libraries(clangTooling
   clangBasic
   clangFrontend

--------------1.7.4.1--




More information about the cfe-commits mailing list