* 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).