mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
calls can be supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57428 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cdb0e4caff
commit
44d2a983b7
@ -11,30 +11,30 @@
|
|||||||
//
|
//
|
||||||
// "Fast" instruction selection is designed to emit very poor code quickly.
|
// "Fast" instruction selection is designed to emit very poor code quickly.
|
||||||
// Also, it is not designed to be able to do much lowering, so most illegal
|
// Also, it is not designed to be able to do much lowering, so most illegal
|
||||||
// types (e.g. i64 on 32-bit targets) and operations (e.g. calls) are not
|
// types (e.g. i64 on 32-bit targets) and operations are not supported. It is
|
||||||
// supported. It is also not intended to be able to do much optimization,
|
// also not intended to be able to do much optimization, except in a few cases
|
||||||
// except in a few cases where doing optimizations reduces overall compile
|
// where doing optimizations reduces overall compile time. For example, folding
|
||||||
// time (e.g. folding constants into immediate fields, because it's cheap
|
// constants into immediate fields is often done, because it's cheap and it
|
||||||
// and it reduces the number of instructions later phases have to examine).
|
// reduces the number of instructions later phases have to examine.
|
||||||
//
|
//
|
||||||
// "Fast" instruction selection is able to fail gracefully and transfer
|
// "Fast" instruction selection is able to fail gracefully and transfer
|
||||||
// control to the SelectionDAG selector for operations that it doesn't
|
// control to the SelectionDAG selector for operations that it doesn't
|
||||||
// support. In many cases, this allows us to avoid duplicating a lot of
|
// support. In many cases, this allows us to avoid duplicating a lot of
|
||||||
// the complicated lowering logic that SelectionDAG currently has.
|
// the complicated lowering logic that SelectionDAG currently has.
|
||||||
//
|
//
|
||||||
// The intended use for "fast" instruction selection is "-O0" mode
|
// The intended use for "fast" instruction selection is "-O0" mode
|
||||||
// compilation, where the quality of the generated code is irrelevant when
|
// compilation, where the quality of the generated code is irrelevant when
|
||||||
// weighed against the speed at which the code can be generated. Also,
|
// weighed against the speed at which the code can be generated. Also,
|
||||||
// at -O0, the LLVM optimizers are not running, and this makes the
|
// at -O0, the LLVM optimizers are not running, and this makes the
|
||||||
// compile time of codegen a much higher portion of the overall compile
|
// compile time of codegen a much higher portion of the overall compile
|
||||||
// time. Despite its limitations, "fast" instruction selection is able to
|
// time. Despite its limitations, "fast" instruction selection is able to
|
||||||
// handle enough code on its own to provide noticeable overall speedups
|
// handle enough code on its own to provide noticeable overall speedups
|
||||||
// in -O0 compiles.
|
// in -O0 compiles.
|
||||||
//
|
//
|
||||||
// Basic operations are supported in a target-independent way, by reading
|
// Basic operations are supported in a target-independent way, by reading
|
||||||
// the same instruction descriptions that the SelectionDAG selector reads,
|
// the same instruction descriptions that the SelectionDAG selector reads,
|
||||||
// and identifying simple arithmetic operations that can be directly selected
|
// and identifying simple arithmetic operations that can be directly selected
|
||||||
// from simple operators. More complicated operations currently require
|
// from simple operators. More complicated operations currently require
|
||||||
// target-specific code.
|
// target-specific code.
|
||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user