mirror of
https://github.com/opnsense/src.git
synced 2026-02-26 03:13:02 -05:00
all of the features in the current working draft of the upcoming C++ standard, provisionally named C++1y. The code generator's performance is greatly increased, and the loop auto-vectorizer is now enabled at -Os and -O2 in addition to -O3. The PowerPC backend has made several major improvements to code generation quality and compile time, and the X86, SPARC, ARM32, Aarch64 and SystemZ backends have all seen major feature work. Release notes for llvm and clang can be found here: <http://llvm.org/releases/3.4/docs/ReleaseNotes.html> <http://llvm.org/releases/3.4/tools/clang/docs/ReleaseNotes.html> MFC after: 1 month
45 lines
1.8 KiB
C++
45 lines
1.8 KiB
C++
//===---- RemoteTargetMessage.h - LLI out-of-process message protocol -----===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Definition of the LLIMessageType enum which is used for communication with a
|
|
// child process for remote execution.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLI_REMOTETARGETMESSAGE_H
|
|
#define LLI_REMOTETARGETMESSAGE_H
|
|
|
|
namespace llvm {
|
|
|
|
// LLI messages from parent-to-child or vice versa follow an exceedingly simple
|
|
// protocol where the first four bytes represent the message type, the next
|
|
// four bytes represent the size of data for the command and following bytes
|
|
// represent the actual data.
|
|
//
|
|
// The protocol is not intended to be robust, secure or fault-tolerant. It is
|
|
// only here for testing purposes and is therefore intended to be the simplest
|
|
// implementation that will work. It is assumed that the parent and child
|
|
// share characteristics like endianness.
|
|
|
|
enum LLIMessageType {
|
|
LLI_Error = -1,
|
|
LLI_ChildActive = 0, // Data = not used
|
|
LLI_AllocateSpace, // Data = struct { uint_32t Align, uint_32t Size }
|
|
LLI_AllocationResult, // Data = uint64_t AllocAddress (in Child memory space)
|
|
LLI_LoadCodeSection, // Data = uint32_t Addr, followed by section contests
|
|
LLI_LoadDataSection, // Data = uint32_t Addr, followed by section contents
|
|
LLI_LoadComplete, // Data = not used
|
|
LLI_Execute, // Data = Address of function to execute
|
|
LLI_ExecutionResult, // Data = uint64_t Result
|
|
LLI_Terminate // Data = not used
|
|
};
|
|
|
|
} // end namespace llvm
|
|
|
|
#endif
|