commit | 2c7794b5053d849a45e4c73bc93e3004ce8e9e86 | [log] [tgz] |
---|---|---|
author | Googler <noreply@google.com> | Tue Sep 29 08:14:56 2020 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Sep 29 08:16:06 2020 -0700 |
tree | d5e1c4e0a381e7f90defab1e24311a18456f2e8f | |
parent | 7d6be204150220b6bf299b81b31f91c418446b81 [diff] |
Add Support for LLVM's Propeller (basic block sections) Optimization Flags. Basic Block Sections was recently introduced in LLVM. This supports option -fbasic-block-sections=list=<file> which allows basic blocks that are specified to be placed in unique sections. This is part of the Propeller optimization project and is used to perform post link code layout optimizations :[] This change adds "propeller_optimize" rule to bazel that allows specifying two files that would be used to create basic block sections. The first is called cc_profile which will be passed to all compile actions. The second is called ld_profile which will be passed to the link action. Both files are expected to be ".txt". The cc_profile artifact will be used as input to the -fbasic-block-sections=list option and the ld_profile artifact will be used as input to the --symbol-ordering-file link option. The purpose of this change is to make sure that these two files are available at the time of the compile/link action. PiperOrigin-RevId: 334381480
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md