Update to use the capacity and unchecked task collection methods
Bug: b/304992619
Change-Id: I4a197597fc171ec31bde8b5b8ed579bb47664d20
diff --git a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
index dc79a46..35e68e9 100644
--- a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
+++ b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
@@ -538,8 +538,7 @@
private void updateGroupsNumberOfIds(List<ClassGroup> groups) {
TaskCollection<?> updateIdsTasks =
- new TaskCollection<>(
- appView.options().getThreadingModule(), executorService, groups.size());
+ new TaskCollection<>(appView.options(), executorService, groups.size());
try {
for (ClassGroup group : groups) {
updateIdsTasks.submit(group::updateNumbersOfIds);
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/D8MethodProcessor.java b/src/main/java/com/android/tools/r8/ir/conversion/D8MethodProcessor.java
index 50261b2..6b13747 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/D8MethodProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/D8MethodProcessor.java
@@ -86,18 +86,14 @@
// The non-synthetic holder is not scheduled. It will be processed once holder is scheduled.
return;
}
- try {
- nonTerminalTasks.submit(
- () ->
- converter.rewriteNonDesugaredCode(
- method,
- eventConsumer,
- OptimizationFeedbackIgnore.getInstance(),
- this,
- processorContext.createMethodProcessingContext(method)));
- } catch (ExecutionException e) {
- throw new RuntimeException(e);
- }
+ nonTerminalTasks.submitUnchecked(
+ () ->
+ converter.rewriteNonDesugaredCode(
+ method,
+ eventConsumer,
+ OptimizationFeedbackIgnore.getInstance(),
+ this,
+ processorContext.createMethodProcessingContext(method)));
}
@Override
@@ -112,18 +108,14 @@
if (method.getDefinition().isAbstract()) {
return;
}
- try {
- terminalTasks.submit(
- () ->
- converter.rewriteDesugaredCode(
- method,
- OptimizationFeedbackIgnore.getInstance(),
- this,
- processorContext.createMethodProcessingContext(method),
- MethodConversionOptions.forD8(converter.appView)));
- } catch (ExecutionException e) {
- throw new RuntimeException(e);
- }
+ terminalTasks.submitUnchecked(
+ () ->
+ converter.rewriteDesugaredCode(
+ method,
+ OptimizationFeedbackIgnore.getInstance(),
+ this,
+ processorContext.createMethodProcessingContext(method),
+ MethodConversionOptions.forD8(converter.appView)));
}
public void scheduleDesugaredMethodsForProcessing(Iterable<ProgramMethod> methods) {
diff --git a/src/main/java/com/android/tools/r8/threading/TaskCollection.java b/src/main/java/com/android/tools/r8/threading/TaskCollection.java
index 8ef8168..2316ec9 100644
--- a/src/main/java/com/android/tools/r8/threading/TaskCollection.java
+++ b/src/main/java/com/android/tools/r8/threading/TaskCollection.java
@@ -35,7 +35,12 @@
}
public TaskCollection(InternalOptions options, ExecutorService executorService) {
- this(options.getThreadingModule(), executorService, -1);
+ this(options, executorService, -1);
+ }
+
+ public TaskCollection(
+ InternalOptions options, ExecutorService executorService, int initialCapacity) {
+ this(options.getThreadingModule(), executorService, initialCapacity);
}
/**
diff --git a/src/main/java/com/android/tools/r8/utils/ThreadUtils.java b/src/main/java/com/android/tools/r8/utils/ThreadUtils.java
index bfab6da..9c8f6e7 100644
--- a/src/main/java/com/android/tools/r8/utils/ThreadUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/ThreadUtils.java
@@ -132,13 +132,7 @@
TaskCollection<R> tasks = new TaskCollection<>(threadingModule, executorService);
try {
items.forEachWithIndex(
- (index, item) -> {
- try {
- tasks.submit(() -> consumer.apply(item, index));
- } catch (ExecutionException e) {
- throw new UncheckedExecutionException(e);
- }
- });
+ (index, item) -> tasks.submitUnchecked(() -> consumer.apply(item, index)));
} catch (UncheckedExecutionException e) {
throw e.rethrow();
}
diff --git a/src/main/java/com/android/tools/r8/utils/threads/ThreadTaskUtils.java b/src/main/java/com/android/tools/r8/utils/threads/ThreadTaskUtils.java
index e65e4d9..f239b67 100644
--- a/src/main/java/com/android/tools/r8/utils/threads/ThreadTaskUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/threads/ThreadTaskUtils.java
@@ -23,7 +23,7 @@
ThreadTask... tasks)
throws ExecutionException {
assert tasks.length > 0;
- TaskCollection<?> taskCollection = new TaskCollection<>(options, executorService);
+ TaskCollection<?> taskCollection = new TaskCollection<>(options, executorService, tasks.length);
if (timingMerger.isEmpty()) {
for (ThreadTask task : tasks) {
if (task.shouldRun()) {