mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +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.
|
||||
// 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
|
||||
// supported. It is also not intended to be able to do much optimization,
|
||||
// except in a few cases where doing optimizations reduces overall compile
|
||||
// time (e.g. folding constants into immediate fields, because it's cheap
|
||||
// and it reduces the number of instructions later phases have to examine).
|
||||
// types (e.g. i64 on 32-bit targets) and operations are not supported. It is
|
||||
// also not intended to be able to do much optimization, except in a few cases
|
||||
// where doing optimizations reduces overall compile time. For example, folding
|
||||
// constants into immediate fields is often done, because it's cheap and it
|
||||
// reduces the number of instructions later phases have to examine.
|
||||
//
|
||||
// "Fast" instruction selection is able to fail gracefully and transfer
|
||||
// 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 intended use for "fast" instruction selection is "-O0" mode
|
||||
// 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
|
||||
// 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
|
||||
// in -O0 compiles.
|
||||
//
|
||||
// Basic operations are supported in a target-independent way, by reading
|
||||
// the same instruction descriptions that the SelectionDAG selector reads,
|
||||
// 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.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user