Comments (2)
Commands for each step:
- Build llvm-repo/clang-repo toolchain with Release configuration.
% cd ~/git/github/llvm-prepo
% tools/pstore/utils/make_build.py -DCAMKE_BUILD_TYPE=Release -o Release
- Modify the Makefile of ~/git/github/llvm-prepo/tools/pstore to compile the project only, no link.
Build a static library, which is basically just a container for object files.
Modifications:
a) set (CMAKE_CXX_FLAGS_DEBUG "-O0")
b) set (CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
c) change add_pstore_executable to add_pstore_library
d) change add_pstore_unit_test to add_pstore_test_library
- Build pstore library using built llvm-repo/clang-repo compiler targeted on ELF, get the compile
time.
change CMakefile targeted on ELF: set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -target x86_64-pc-linux-gnu-elf")
% cd ~/git/github/llvm-prepo/tools/pstore
% utils/make_build.py -DCAMKE_BUILD_TYPE=Debug(/Release) -DCMAKE_C_COMPILER=~/git/github/llvm-prepo/Release/bin/clang -DCMAKE_C++_COMPILER=~/git/github/llvm-prepo/Release/bin/clang++ -o ELF_Debug(/ELF_Release)
% cd ELF_Debug(/ELF_Release)
% ninja clean
% /usr/bin/time -o time_report_for_elf.log ninja
- Build pstore library using built llvm-repo/clang-repo compiler targeted on Repo, get the compile
time.
Change CMakefile targeted on Repo: set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -target x86_64-pc-linux-gnu-repo")
% cd ~/git/github/llvm-prepo/tools/pstore
% utils/make_build.py -DCAMKE_BUILD_TYPE=Debug(/Release) -DCMAKE_C_COMPILER=~/git/github/llvm-prepo/Release/bin/clang -DCMAKE_C++_COMPILER=~/git/github/llvm-prepo/Release/bin/clang++ -o Repo_Debug(/Repo_Release)
% cd Repo_Debug(/Repo_Release)
% rm -f clang.db
% ninja clean
% /usr/bin/time -o time_report_for_repo_first_time.log ninja
- Build pstore library again and get the compile time.
% cd ~/git/github/llvm-prepo/tools/pstore/Repo_Debug(/Repo_Release)
% ninja clean
% /usr/bin/time -o time_report_for_repo_seond_time.log ninja
from llvm-prepo.
The detailed compile time has been given in https://github.com/SNSystems/llvm-prepo/wiki/Performance
from llvm-prepo.
Related Issues (20)
- Switch ticket files from UUID to digest of contents
- Assertion failed: Val && "isa<> used on a null pointer" HOT 2
- Ticket file digests are different between two time builds HOT 2
- Ticket file digests (the pstore_mcrepo/fragment.cpp) are different between two time builds HOT 2
- Optimizing the llvm-prepo compiler to reduce user project build time HOT 5
- llvm-prepo: Incorrect hash calculation for the ‘CallInst’ instruction. HOT 2
- Incorrect hash calculation for llvm.global_ctors HOT 2
- Undefined reference to 'str' HOT 1
- UNREACHABLE executed at /mnt/e/work/prepo/llvm/lib/IR/RepoHashCalculator.cpp:131! HOT 2
- Update this project to the upstream LLVM 8.0 HOT 1
- Incorrect fragment generation for same functions in the translation unit. HOT 2
- Accumulate the debug line information to the repo hash calculation.
- Use 'available_externally' linkage in the RepoPruning pass
- Fatal error: invalid linkage for intrinsic global variable
- Store the target triple in the compilation record HOT 2
- llvm-prepo test: the pstore unit and system tests HOT 1
- Incorrect hash calculation for a global object (GO) that calls another GO with an available_externally linkage type. HOT 1
- Automatically setup repo toolchain and build and run tests HOT 2
- The MC object writer and repo2obj treat a bss section as a special section HOT 1
- Clean up the debug_line branch and merge it back to the master branch HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from llvm-prepo.