Provide PTXLinker with fallback to internal target-cpu
This commit is contained in:
parent
899d936dee
commit
3f624456e6
src
ci/docker/test-various
librustc_codegen_ssa/back
test/run-make
@ -14,7 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
xz-utils
|
||||
|
||||
# FIXME: build the `ptx-linker` instead.
|
||||
RUN curl -sL https://github.com/denzp/rust-ptx-linker/releases/download/v0.9.0-alpha.1/rust-ptx-linker.linux64.tar.gz | \
|
||||
RUN curl -sL https://github.com/denzp/rust-ptx-linker/releases/download/v0.9.0-alpha.2/rust-ptx-linker.linux64.tar.gz | \
|
||||
tar -xzvC /usr/bin
|
||||
|
||||
RUN curl -sL https://nodejs.org/dist/v9.2.0/node-v9.2.0-linux-x64.tar.xz | \
|
||||
|
@ -1132,6 +1132,12 @@ impl<'a> Linker for PtxLinker<'a> {
|
||||
}
|
||||
|
||||
fn finalize(&mut self) -> Command {
|
||||
// Provide the linker with fallback to internal `target-cpu`.
|
||||
self.cmd.arg("--fallback-arch").arg(match self.sess.opts.cg.target_cpu {
|
||||
Some(ref s) => s,
|
||||
None => &self.sess.target.target.options.cpu
|
||||
});
|
||||
|
||||
::std::mem::replace(&mut self.cmd, Command::new(""))
|
||||
}
|
||||
|
||||
|
@ -2,8 +2,11 @@
|
||||
|
||||
ifeq ($(TARGET),nvptx64-nvidia-cuda)
|
||||
all:
|
||||
$(RUSTC) main.rs -Clink-arg=--arch=sm_60 --crate-type="bin" -O --target $(TARGET)
|
||||
FileCheck main.rs --input-file $(TMPDIR)/main.ptx
|
||||
$(RUSTC) main.rs --crate-type="bin" --target $(TARGET) -O -C link-arg=--arch=sm_60 -o $(TMPDIR)/main.link_arg.ptx
|
||||
$(RUSTC) main.rs --crate-type="bin" --target $(TARGET) -O -C target-cpu=sm_60 -o $(TMPDIR)/main.target_cpu.ptx
|
||||
|
||||
FileCheck main.rs --input-file $(TMPDIR)/main.link_arg.ptx
|
||||
FileCheck main.rs --input-file $(TMPDIR)/main.target_cpu.ptx
|
||||
else
|
||||
all:
|
||||
endif
|
||||
|
@ -5,7 +5,7 @@
|
||||
extern crate dep;
|
||||
|
||||
// Verify the default CUDA arch.
|
||||
// CHECK: .target sm_20
|
||||
// CHECK: .target sm_30
|
||||
// CHECK: .address_size 64
|
||||
|
||||
// Make sure declarations are there.
|
||||
|
Loading…
x
Reference in New Issue
Block a user