aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-06-13 17:39:50 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-06-14 13:16:12 +0200
commit6186fa5fe9869c6102597b18244fc9546f931632 (patch)
treedcc5d9d6a171d02fe90125e2d83740599dfd8513 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
parent5d660595111ec2a14c87856e76b78422e267c628 (diff)
Add support for zipped LLVM profile files.
This change is a follow-up to a recent change which allowed LLVM raw profile files to be directly used with blaze. This change allows zipped LLVM raw profile files. This uses //tools/zip:zipper to extract the zipped file contents. This also adds a new option to //tools/zip:zipper, 'j', to junk directories while unzipping. Tested: blaze test //devtools/blaze/integration:fdo_test blaze test //third_party/ijar/test:zip_test RELNOTES[NEW]: Zipped LLVM profiles are now supported. PiperOrigin-RevId: 158849516
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 1d50ed608c..617fce8bf2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -1601,7 +1601,12 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
return cppOptions.isFdo()
&& cppOptions.getFdoOptimize() != null
&& (CppFileTypes.LLVM_PROFILE.matches(cppOptions.getFdoOptimize())
- || CppFileTypes.LLVM_PROFILE_RAW.matches(cppOptions.getFdoOptimize()));
+ || CppFileTypes.LLVM_PROFILE_RAW.matches(cppOptions.getFdoOptimize())
+ // TODO(tmsriram): Checking for "llvm" does not handle all the cases. This
+ // is temporary until the crosstool configuration is modified to add fields that
+ // indicate which flavor of fdo is being used.
+ || (getToolchainIdentifier().contains("llvm")
+ && cppOptions.getFdoOptimize().endsWith(".zip")));
}
/**