* ppc64le added to buildbot @ 2021-05-31 22:31 Mark Wielaard 2021-06-01 22:34 ` debian-i386 target (Was: ppc64le added to buildbot) Mark Wielaard 0 siblings, 1 reply; 5+ messages in thread From: Mark Wielaard @ 2021-05-31 22:31 UTC (permalink / raw) To: gcc-rust Hi, Since the ppc64le target is now zero-fail I added it to my buildbot setup: https://builder.wildebeest.org/buildbot/#/builders/60 You can find the status off all the builders at https://builder.wildebeest.org/buildbot/#/builders?tags=gccrust There are currently three builders, fedora-x86_64, debian-arm64 and fedora-ppc64le which we know are zero fail. It would be nice to see how 32bit (debian-i386 or debian-armhf) and big-endian (fedora-s390x or fedora-ppc64) targets are doing. I haven't tried them yet. Are there any other targets people are working on? Cheers, Mark ^ permalink raw reply [flat|nested] 5+ messages in thread
* debian-i386 target (Was: ppc64le added to buildbot) 2021-05-31 22:31 ppc64le added to buildbot Mark Wielaard @ 2021-06-01 22:34 ` Mark Wielaard 2021-06-02 10:22 ` Philip Herron 0 siblings, 1 reply; 5+ messages in thread From: Mark Wielaard @ 2021-06-01 22:34 UTC (permalink / raw) To: gcc-rust Hi, On Tue, Jun 01, 2021 at 12:31:02AM +0200, Mark Wielaard wrote: > There are currently three builders, fedora-x86_64, debian-arm64 and > fedora-ppc64le which we know are zero fail. It would be nice to see > how 32bit (debian-i386 or debian-armhf) and big-endian (fedora-s390x > or fedora-ppc64) targets are doing. I haven't tried them yet. I tried the simplest 32bit target, debian-i386 and it builds, but make check-rust fails. It seems to have trouble processing f64 defintions/values. mark@debian-i386:~/gccrs-build$ gcc/rust1 /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs Preparing to parse files. Attempting to parse file: /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs beginning null denotation identifier handling current peek token when starting path pratt parse: '{' current token (just about to return path to null denotation): '{' finished null denotation identifier path parsing - next is branching values of lookahead: 'identifier' ':' 'float literal' ',' can be struct expr: 'true', not a block: 'true' struct/enum expr field validated to not be null struct/enum expr field pushed back struct/enum expr fields comma skipped struct/enum expr field validated to not be null struct/enum expr field pushed back lack of comma detected in struct/enum expr fields - break struct/enum expr about to parse struct base struct/enum expr skipped right curly - done and ready to return beginning null denotation identifier handling current peek token when starting path pratt parse: '{' current token (just about to return path to null denotation): '{' finished null denotation identifier path parsing - next is branching values of lookahead: 'identifier' ':' 'identifier' ',' can be struct expr: 'true', not a block: 'true' beginning null denotation identifier handling current peek token when starting path pratt parse: ',' current token (just about to return path to null denotation): ',' finished null denotation identifier path parsing - next is branching struct/enum expr field validated to not be null struct/enum expr field pushed back struct/enum expr fields comma skipped beginning null denotation identifier handling current peek token when starting path pratt parse: '}' current token (just about to return path to null denotation): '}' finished null denotation identifier path parsing - next is branching struct/enum expr field validated to not be null struct/enum expr field pushed back lack of comma detected in struct/enum expr fields - break struct/enum expr about to parse struct base struct/enum expr skipped right curly - done and ready to return successfully parsed inherent impl beginning null denotation identifier handling current peek token when starting path pratt parse: '{' current token (just about to return path to null denotation): '{' finished null denotation identifier path parsing - next is branching values of lookahead: 'identifier' ',' 'identifier' '}' can be struct expr: 'true', not a block: 'true' struct/enum expr field validated to not be null struct/enum expr field pushed back struct/enum expr fields comma skipped struct/enum expr field validated to not be null struct/enum expr field pushed back lack of comma detected in struct/enum expr fields - break struct/enum expr about to parse struct base struct/enum expr skipped right curly - done and ready to return beginning null denotation self/self-alias/dollar/crate/super handling current peek token when starting path pratt parse: '.' current token (just about to return path to null denotation): '.' just finished parsing path (going to disambiguate) - peeked token is '.' beginning null denotation self/self-alias/dollar/crate/super handling current peek token when starting path pratt parse: '.' current token (just about to return path to null denotation): '.' just finished parsing path (going to disambiguate) - peeked token is '.' beginning null denotation identifier handling current peek token when starting path pratt parse: '.' current token (just about to return path to null denotation): '.' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: '.' current token (just about to return path to null denotation): '.' finished null denotation identifier path parsing - next is branching successfully parsed inherent impl beginning null denotation identifier handling current peek token when starting path pratt parse: '::' current token (just about to return path to null denotation): '(' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: '::' current token (just about to return path to null denotation): '(' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: '::' current token (just about to return path to null denotation): '(' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: ',' current token (just about to return path to null denotation): ',' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: ')' current token (just about to return path to null denotation): ')' finished null denotation identifier path parsing - next is branching beginning null denotation identifier handling current peek token when starting path pratt parse: '.' current token (just about to return path to null denotation): '.' finished null denotation identifier path parsing - next is branching SUCCESSFULLY PARSED CRATE ran register_plugins (with no body) SUCCESSFULLY REGISTERED PLUGINS started injection finished injection SUCCESSFULLY FINISHED INJECTION started expansion finished expansion SUCCESSFULLY FINISHED EXPANSION /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:38:9: warning: unused name 'sum' 38 | let sum = rect.sum_x(); | ^ Analyzing compilation unit /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs: In function ‘Rectangle_sum_x’: /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: error: type mismatch in binary expression 26 | fn sum_x(self) -> f64 { | ^ f64 <float:80> <float:80> D.227 = _2 + _4; /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: internal compiler error: ‘verify_gimple’ failed 0x8b114e4 verify_gimple_in_seq(gimple*) ../../gccrs/gcc/tree-cfg.c:5157 0x881a9e3 gimplify_body(tree_node*, bool) ../../gccrs/gcc/gimplify.c:15401 0x881abb2 gimplify_function_tree(tree_node*) ../../gccrs/gcc/gimplify.c:15472 0x8675c88 cgraph_node::analyze() ../../gccrs/gcc/cgraphunit.c:670 0x8678a58 analyze_functions ../../gccrs/gcc/cgraphunit.c:1236 0x8679641 symbol_table::finalize_compilation_unit() ../../gccrs/gcc/cgraphunit.c:2514 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: debian-i386 target (Was: ppc64le added to buildbot) 2021-06-01 22:34 ` debian-i386 target (Was: ppc64le added to buildbot) Mark Wielaard @ 2021-06-02 10:22 ` Philip Herron 2021-06-02 10:25 ` John Paul Adrian Glaubitz 2021-06-02 21:14 ` Mark Wielaard 0 siblings, 2 replies; 5+ messages in thread From: Philip Herron @ 2021-06-02 10:22 UTC (permalink / raw) To: Mark Wielaard; +Cc: gcc-rust [-- Attachment #1: Type: text/plain, Size: 8464 bytes --] On Tue, 1 Jun 2021 at 23:34, Mark Wielaard <mark@klomp.org> wrote: > Hi, > > On Tue, Jun 01, 2021 at 12:31:02AM +0200, Mark Wielaard wrote: > > There are currently three builders, fedora-x86_64, debian-arm64 and > > fedora-ppc64le which we know are zero fail. It would be nice to see > > how 32bit (debian-i386 or debian-armhf) and big-endian (fedora-s390x > > or fedora-ppc64) targets are doing. I haven't tried them yet. > > I tried the simplest 32bit target, debian-i386 and it builds, but make > check-rust fails. It seems to have trouble processing f64 > defintions/values. > > mark@debian-i386:~/gccrs-build$ gcc/rust1 > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs > Preparing to parse files. > Attempting to parse file: /home/mark/gccrs/gcc/testsuite/rust.test/compile/ > methods1.rs > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ':' 'float literal' ',' > can be struct expr: 'true', not a block: 'true' > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ':' 'identifier' ',' > can be struct expr: 'true', not a block: 'true' > beginning null denotation identifier handling > current peek token when starting path pratt parse: ',' > current token (just about to return path to null denotation): ',' > finished null denotation identifier path parsing - next is branching > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > beginning null denotation identifier handling > current peek token when starting path pratt parse: '}' > current token (just about to return path to null denotation): '}' > finished null denotation identifier path parsing - next is branching > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > successfully parsed inherent impl > beginning null denotation identifier handling > current peek token when starting path pratt parse: '{' > current token (just about to return path to null denotation): '{' > finished null denotation identifier path parsing - next is branching > values of lookahead: 'identifier' ',' 'identifier' '}' > can be struct expr: 'true', not a block: 'true' > struct/enum expr field validated to not be null > struct/enum expr field pushed back > struct/enum expr fields comma skipped > struct/enum expr field validated to not be null > struct/enum expr field pushed back > lack of comma detected in struct/enum expr fields - break > struct/enum expr about to parse struct base > struct/enum expr skipped right curly - done and ready to return > beginning null denotation self/self-alias/dollar/crate/super handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > just finished parsing path (going to disambiguate) - peeked token is '.' > beginning null denotation self/self-alias/dollar/crate/super handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > just finished parsing path (going to disambiguate) - peeked token is '.' > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > successfully parsed inherent impl > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '::' > current token (just about to return path to null denotation): '(' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: ',' > current token (just about to return path to null denotation): ',' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: ')' > current token (just about to return path to null denotation): ')' > finished null denotation identifier path parsing - next is branching > beginning null denotation identifier handling > current peek token when starting path pratt parse: '.' > current token (just about to return path to null denotation): '.' > finished null denotation identifier path parsing - next is branching > SUCCESSFULLY PARSED CRATE > ran register_plugins (with no body) > SUCCESSFULLY REGISTERED PLUGINS > started injection > finished injection > SUCCESSFULLY FINISHED INJECTION > started expansion > finished expansion > SUCCESSFULLY FINISHED EXPANSION > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:38:9: > warning: unused name 'sum' > 38 | let sum = rect.sum_x(); > | ^ > > Analyzing compilation unit > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs: In function > ‘Rectangle_sum_x’: > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: error: > type mismatch in binary expression > 26 | fn sum_x(self) -> f64 { > | ^ > f64 > > <float:80> > > <float:80> > > D.227 = _2 + _4; > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: > internal compiler error: ‘verify_gimple’ failed > 0x8b114e4 verify_gimple_in_seq(gimple*) > ../../gccrs/gcc/tree-cfg.c:5157 > 0x881a9e3 gimplify_body(tree_node*, bool) > ../../gccrs/gcc/gimplify.c:15401 > 0x881abb2 gimplify_function_tree(tree_node*) > ../../gccrs/gcc/gimplify.c:15472 > 0x8675c88 cgraph_node::analyze() > ../../gccrs/gcc/cgraphunit.c:670 > 0x8678a58 analyze_functions > ../../gccrs/gcc/cgraphunit.c:1236 > 0x8679641 symbol_table::finalize_compilation_unit() > ../../gccrs/gcc/cgraphunit.c:2514 > Please submit a full bug report, > with preprocessed source if appropriate. > Please include the complete backtrace with any bug report. > See <https://gcc.gnu.org/bugs/> for instructions. > -- > Gcc-rust mailing list > Gcc-rust@gcc.gnu.org > https://gcc.gnu.org/mailman/listinfo/gcc-rust > > Hi Mark, This is a good find I will open an issue to track this, I have a local Debian 32 bit machine at home so I can try this on later in the week. Off the top of my head I am wondering if there is something wrong with how we are building up the integer tree nodes. The relevant code starts in gcc/rust/backend/rust-compile-tyty.h inside ``` void visit (TyTy::IntType &type) override```. Let me know if you get anywhere with this before Friday since I will should be able to look into this issue then. --Phil [-- Attachment #2: Type: text/html, Size: 10032 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: debian-i386 target (Was: ppc64le added to buildbot) 2021-06-02 10:22 ` Philip Herron @ 2021-06-02 10:25 ` John Paul Adrian Glaubitz 2021-06-02 21:14 ` Mark Wielaard 1 sibling, 0 replies; 5+ messages in thread From: John Paul Adrian Glaubitz @ 2021-06-02 10:25 UTC (permalink / raw) To: Philip Herron, Mark Wielaard; +Cc: gcc-rust Hi Philip! On 6/2/21 12:22 PM, Philip Herron wrote: > This is a good find I will open an issue to track this, I have a local > Debian 32 bit machine at home so I can try this on later in the week. Off > the top of my head I am wondering if there is something wrong with how we > are building up the integer tree nodes. The relevant code starts in > gcc/rust/backend/rust-compile-tyty.h inside ``` void visit (TyTy::IntType > &type) override```. I have access to quite a number of different architectures and I will start testing gccrs on all of them now, starting with ia64 :-). Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaubitz@debian.org `. `' Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: debian-i386 target (Was: ppc64le added to buildbot) 2021-06-02 10:22 ` Philip Herron 2021-06-02 10:25 ` John Paul Adrian Glaubitz @ 2021-06-02 21:14 ` Mark Wielaard 1 sibling, 0 replies; 5+ messages in thread From: Mark Wielaard @ 2021-06-02 21:14 UTC (permalink / raw) To: Philip Herron; +Cc: gcc-rust Hi Philip, On Wed, Jun 02, 2021 at 11:22:43AM +0100, Philip Herron wrote: > > Analyzing compilation unit > > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs: In function > > ‘Rectangle_sum_x’: > > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: error: > > type mismatch in binary expression > > 26 | fn sum_x(self) -> f64 { > > | ^ > > f64 > > > > <float:80> > > > > <float:80> > > > > D.227 = _2 + _4; > > /home/mark/gccrs/gcc/testsuite/rust.test/compile/methods1.rs:26:5: > > internal compiler error: ‘verify_gimple’ failed > > 0x8b114e4 verify_gimple_in_seq(gimple*) > > ../../gccrs/gcc/tree-cfg.c:5157 > > 0x881a9e3 gimplify_body(tree_node*, bool) > > ../../gccrs/gcc/gimplify.c:15401 > > 0x881abb2 gimplify_function_tree(tree_node*) > > ../../gccrs/gcc/gimplify.c:15472 > > 0x8675c88 cgraph_node::analyze() > > ../../gccrs/gcc/cgraphunit.c:670 > > 0x8678a58 analyze_functions > > ../../gccrs/gcc/cgraphunit.c:1236 > > 0x8679641 symbol_table::finalize_compilation_unit() > > ../../gccrs/gcc/cgraphunit.c:2514 > > This is a good find I will open an issue to track this, I have a local > Debian 32 bit machine at home so I can try this on later in the week. Off > the top of my head I am wondering if there is something wrong with how we > are building up the integer tree nodes. The relevant code starts in > gcc/rust/backend/rust-compile-tyty.h inside ``` void visit (TyTy::IntType > &type) override```. > > Let me know if you get anywhere with this before Friday since I will should > be able to look into this issue then. I looked a bit but am still struggling with how to debug the gimple generation. The following is a simpler variant that shows the issue: fn sum(x: f64, y: f64) -> f64 { x + y } fn main() { let _sum = sum(3.0, 4.0); } Interestingly the following, using an mutable temporary variable to hold the result does pass: fn sum(x: f64, y: f64) -> f64 { let mut z:f64 = x; z += y; z } fn main() { let _sum = sum(3.0, 4.0); } As far as I can tell the second variant still uses float:80 for the temporaries, but because z is f64 it gets cast to (f64) when returning, making the gimple check pass. So I assumed it was because the arguments got the wrong type somehow. But the following also doesn't pass: fn sum(x: f64, y: f64) -> f64 { let a:f64 = x; let b:f64 = y; a + b } fn main() { let _sum = sum(3.0, 4.0); } So it is as if the plus expression gets its variable types wrong. I don't know where that is generated though, or why it is using float:80. Cheers, Mark ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-06-02 21:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-05-31 22:31 ppc64le added to buildbot Mark Wielaard 2021-06-01 22:34 ` debian-i386 target (Was: ppc64le added to buildbot) Mark Wielaard 2021-06-02 10:22 ` Philip Herron 2021-06-02 10:25 ` John Paul Adrian Glaubitz 2021-06-02 21:14 ` Mark Wielaard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).