Files
swift-mirror/lib/Driver/Action.cpp
Jordan Rose 47872d9190 [Driver] Transfer all ownership of Actions to the Compilation.
Previously, Actions were responsible for freeing their inputs...
except for the ones that weren't. Or the ones that were supposed
to, but then they needed to share an input, so they couldn't anymore.
If this sounds ridiculous, you're right; now Actions are just
immediately allocated and owned by the Compilation.

The graph structure of the actions is still useful for some things; in
particular, "top-level" actions get to put their outputs somewhere
permanent rather than TMPDIR. But I expect these things to get cleaned
up in the future too.
2017-08-11 21:09:34 -07:00

65 lines
1.8 KiB
C++

//===--- Action.cpp - Abstract compilation steps --------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
#include "swift/Driver/Action.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/ErrorHandling.h"
using namespace swift::driver;
using namespace llvm::opt;
const char *Action::getClassName(ActionClass AC) {
switch (AC) {
case Input: return "input";
case CompileJob: return "compile";
case InterpretJob: return "interpret";
case BackendJob: return "backend";
case MergeModuleJob: return "merge-module";
case ModuleWrapJob: return "modulewrap";
case AutolinkExtractJob: return "swift-autolink-extract";
case REPLJob: return "repl";
case LinkJob: return "link";
case GenerateDSYMJob: return "generate-dSYM";
case VerifyDebugInfoJob: return "verify-debug-info";
case GeneratePCHJob: return "generate-pch";
}
llvm_unreachable("invalid class");
}
void InputAction::anchor() {}
void JobAction::anchor() {}
void CompileJobAction::anchor() {}
void InterpretJobAction::anchor() {}
void BackendJobAction::anchor() {}
void MergeModuleJobAction::anchor() {}
void ModuleWrapJobAction::anchor() {}
void AutolinkExtractJobAction::anchor() {}
void REPLJobAction::anchor() {}
void LinkJobAction::anchor() {}
void GenerateDSYMJobAction::anchor() {}
void VerifyDebugInfoJobAction::anchor() {}
void GeneratePCHJobAction::anchor() {}