Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upTracking issue for FastISel #26600
Comments
pcwalton
added
A-LLVM
A-codegen
I-compiletime
labels
Jun 26, 2015
This comment has been minimized.
This comment has been minimized.
|
Did #26595 fix the FCA problem? |
This comment has been minimized.
This comment has been minimized.
|
We should add a test for this in-tree as well. A good strategy is probably going to be adding those LLVM arguments with the -Z flag and building run-pass tests with it... |
This comment has been minimized.
This comment has been minimized.
|
@pcwalton Are you working on an upstream patch or is that free to be taken? |
dotdash
added a commit
to dotdash/rust
that referenced
this issue
Jul 2, 2015
dotdash
referenced this issue
Jul 2, 2015
Merged
Slightly improve translation of function arguments #26738
dotdash
added a commit
to dotdash/rust
that referenced
this issue
Jul 2, 2015
bors
added a commit
that referenced
this issue
Jul 2, 2015
bors
added a commit
that referenced
this issue
Jul 2, 2015
jroesch
added a commit
to jroesch/rust
that referenced
this issue
Jul 21, 2015
thepowersgang
added a commit
to thepowersgang/rust
that referenced
this issue
Jul 25, 2015
This comment has been minimized.
This comment has been minimized.
|
Triage: fn main() {
Vec::<u8>::new();
}(this creates an absurd amount of code)
And with the
(on x86_64 Arch Linux) Rust's own The |
This comment has been minimized.
This comment has been minimized.
|
Yes trans is sure to load and store every value quite a bit of times. |
alexcrichton
referenced this issue
Feb 29, 2016
Merged
RFC: Stabilize implementing panics as aborts #1513
Mark-Simulacrum
added
the
C-tracking-issue
label
Jul 22, 2017
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Note that FastISel is apparently intended to be replaced by GlobalISel in the future. |
This comment has been minimized.
This comment has been minimized.
|
But also note that it will be many years until GlobalISel is production quality for all the architectures we care about. |
This comment has been minimized.
This comment has been minimized.
|
I think the |
This comment has been minimized.
This comment has been minimized.
|
Triage: i just tried @jonas-schievink 's example on godbolt's llvm-trunk, and got
|
pcwalton commentedJun 26, 2015
We are currently falling off FastISel to the optimized SelectionDAG instruction selector in pretty much every function, hurting our codegen time in debug builds. You can verify this by running
llc -O0 -fast-isel -fast-isel-abort. We have the following issues:invokeinstruction. Proposed solution: Add this support to LLVM.switchinstruction. Proposed solution: Add this support to LLVM.i1. Proposed solution: Add this support to LLVM.llvm.assumeintrinsic. Proposed solution: Ignore that intrinsic in LLVM.store { i8*, i32 } %1, %2). Proposed solution: Stop doing this in trans.