[Bug rtl-optimization/80197] pgo dramatically pessimizes scimark2 MonteCarlo benchmark

2017-03-28 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80197 --- Comment #5 from Alexander Monakov --- On trunk, manually fixing up inlining is not enough: trunk additionally needs -fno-tracer, otherwise crucial if-conversion of 'if (k < 0) k += m1;' is prevented.

[Bug rtl-optimization/80197] pgo dramatically pessimizes scimark2 MonteCarlo benchmark

2017-03-27 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80197 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug middle-end/80053] Label with address taken should prevent duplication of containing basic block

2017-03-17 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80053 --- Comment #6 from Alexander Monakov --- (In reply to rguent...@suse.de from comment #4) > To the value in the other BB/function. This works if the jump > targets are semantically compatible. For function cloning it's > probably hard to say

[Bug middle-end/80053] Label with address taken should prevent duplication of containing basic block

2017-03-17 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80053 --- Comment #3 from Alexander Monakov --- ... unless labels are intended to act similar to non-static function-scope variables, with computed address usable only until the containing function returns? Except when used in static initializers,

[Bug middle-end/80053] Label with address taken should prevent duplication of containing basic block

2017-03-16 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80053 --- Comment #2 from Alexander Monakov --- (In reply to Richard Biener from comment #1) > The question is whether the transform at hand is valid if the label is > duplicated > but all referers still refer to the original one (so if the label is

[Bug middle-end/80053] New: Label with address taken should prevent duplication of containing basic block

2017-03-15 Thread amonakov at gcc dot gnu.org
: wrong-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- Today, GCC considers all BBs clonable on GIMPLE, as indicated by tree

[Bug target/80035] [nvptx] non-returning function call causes ptxas sigsegv

2017-03-14 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80035 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug rtl-optimization/79985] ICE in code_motion_path_driver, at sel-sched.c:6580

2017-03-12 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79985 --- Comment #4 from Alexander Monakov --- It might have been nicer to adjust asms themselves, adding inputs/outputs for each global reg, if we must pretend the asms implicitly read/write them. That would allow any subsystem (df, sched-deps,

[Bug rtl-optimization/79985] ICE in code_motion_path_driver, at sel-sched.c:6580

2017-03-12 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79985 --- Comment #3 from Alexander Monakov --- Since r235809, in df-scan.c:df_insn_refs_collect, there's 3233 if (asm_noperands (PATTERN (insn_info->insn)) >= 0) 3234 for (unsigned i = 0; i < FIRST_PSEUDO_REGISTER; i++) 3235 if

[Bug rtl-optimization/79985] ICE in code_motion_path_driver, at sel-sched.c:6580

2017-03-10 Thread amonakov at gcc dot gnu.org
||2017-03-10 CC||abel at gcc dot gnu.org, ||amonakov at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Alexander Monakov --- Thanks for the nice

[Bug target/79570] [5/6/7 Regression] ICE in sel-sched-ir.c:4534 in pr69956.c

2017-02-17 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79570 Alexander Monakov changed: What|Removed |Added CC||abel at gcc dot gnu.org --- Comment

[Bug target/79439] Missing nop instruction after recursive call corrupts TOC register

2017-02-09 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79439 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug translation/79332] Several bugs related to translation in gcc 7.1-b20170101

2017-02-06 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79332 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug middle-end/56727] Recursive call goes through the PLT unnecessarily

2017-01-23 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56727 --- Comment #8 from Alexander Monakov --- Well, if my argument is correct, then GCC generates wrong code for the very first example in comment #0. If that is deliberate as a compromise even though otherwise GCC suppresses optimizations to honor

[Bug middle-end/56727] Recursive call goes through the PLT unnecessarily

2017-01-23 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56727 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug middle-end/78884] [5/6/7 Regression] ICE when gimplifying VLA in OpenMP SIMD region

2016-12-21 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78884 --- Comment #2 from Alexander Monakov --- Not sure how well this qualifies as a regression: prior to 4.9, there was no OpenMP SIMD support, so 4.8 just diagnoses a warning for an unrecognized omp-simd pragma.

[Bug target/78831] [nvptx] -mgomp -Os init_softstack_frame ICE

2016-12-21 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78831 Alexander Monakov changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|---

[Bug target/78831] [nvptx] -mgomp -Os init_softstack_frame ICE

2016-12-21 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78831 --- Comment #2 from Alexander Monakov --- Author: amonakov Date: Wed Dec 21 14:20:09 2016 New Revision: 243855 URL: https://gcc.gnu.org/viewcvs?rev=243855=gcc=rev Log: nvptx: do not assume that crtl->is_leaf is unset PR target/78831

[Bug middle-end/78884] New: ICE when gimplifying VLA in OpenMP SIMD region

2016-12-21 Thread amonakov at gcc dot gnu.org
Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- Noticed this ICE when looking at OpenMP gimplification/lowering: void use(int*); void f(int n) { #pragma omp simd

[Bug target/78831] [nvptx] -mgomp -Os init_softstack_frame ICE

2016-12-16 Thread amonakov at gcc dot gnu.org
||2016-12-16 Assignee|unassigned at gcc dot gnu.org |amonakov at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Alexander Monakov --- Thanks. This is due to r243347. After that change, crtl->is_leaf is initiali

[Bug c++/78589] g++ prints instead of a function name when warning in an OpenMP outlined function

2016-11-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78589 --- Comment #3 from Alexander Monakov --- Ah, sorry if I misunderstood and got carried away. >From my investigation it looks like for the '' issue it's just a matter of setting DECL_ABSTRACT_ORIGIN in create_omp_child_function (not sure if

[Bug c++/78589] g++ prints instead of a function name when warning in an OpenMP outlined function

2016-11-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78589 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug target/67822] OpenMP offloading to nvptx fails

2016-11-24 Thread amonakov at gcc dot gnu.org
||amonakov at gcc dot gnu.org Resolution|--- |FIXED --- Comment #4 from Alexander Monakov --- .

[Bug target/67822] OpenMP offloading to nvptx fails

2016-11-24 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67822 --- Comment #3 from Alexander Monakov --- Author: amonakov Date: Thu Nov 24 18:10:42 2016 New Revision: 242842 URL: https://gcc.gnu.org/viewcvs?rev=242842=gcc=rev Log: Allow -fopenmp in NVPTX mkoffload PR target/67822 *

[Bug tree-optimization/78035] Inconsistency between address comparison and alias analysis

2016-10-19 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78035 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug tree-optimization/77745] New: Inconsistent application of aliasing rules

2016-09-26 Thread amonakov at gcc dot gnu.org
-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- For the following C++ testcase: #include long foo(char *c1, char *c2) { long *p1 = new(c1) long; *p1 = 100; long long *p2 = new(c2) long long

[Bug target/77478] Incorrect code generated with -O3, m32, -msse2 and -ffast-math

2016-09-21 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77478 --- Comment #7 from Alexander Monakov --- Richard, I don't believe this is a dup. According to my git-bisect, this was fixed or made latent during gcc-6 development by your patch: https://gcc.gnu.org/ml/gcc-patches/2015-07/msg00120.html [PATCH]

[Bug target/77478] Incorrect code generated with -O3, m32, -msse2 and -ffast-math

2016-09-20 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77478 --- Comment #6 from Alexander Monakov --- Thanks, seeing alignment info in dumps helps (I think you meant -vops rather than -alias?). This doesn't seem to reproduce on trunk. On gcc-5 branch, I see alignment increasing in dom2 pass.

[Bug target/77478] Incorrect code generated with -O3, m32, -msse2 and -ffast-math

2016-09-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77478 --- Comment #4 from Alexander Monakov --- Slightly reduced testcase that demonstrates the issue regardless of stack-protector; -O3 -ffast-math is enough on x86-64 (plus -msse2 on i386). Oddly, the #if0 block makes a difference. static const

[Bug target/77478] Incorrect code generated with -O3, m32, -msse2 and -ffast-math

2016-09-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77478 --- Comment #3 from Alexander Monakov --- On further investigation, lack of peeling might be intentional, the vectorizer could be deliberately using unaligned access. Previously I missed that the body of the vectorized loop is completely

[Bug target/77478] Incorrect code generated with -O3, m32, -msse2 and -ffast-math

2016-09-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77478 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug c/77453] No builtin version of cbrtf

2016-09-02 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77453 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug tree-optimization/77399] Poor code generation for vector casts and loads

2016-08-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77399 --- Comment #8 from Alexander Monakov --- > The extension is closely modeled after openCL Hm, that doesn't sound right: gcc had vector types long before OpenCL was even a thing; I believe it's modeled after Altivec actually: the discrepancy

[Bug tree-optimization/77399] Poor code generation for vector casts and loads

2016-08-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77399 --- Comment #6 from Alexander Monakov --- Thanks. Any comment on having gimple lowering emit cleaner code in the first place?

[Bug tree-optimization/77399] Poor code generation for vector casts and loads

2016-08-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77399 Alexander Monakov changed: What|Removed |Added Summary|SLP does not handle |Poor code generation for

[Bug middle-end/77399] Fails to use native instructions for vector casts

2016-08-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77399 --- Comment #1 from Alexander Monakov --- I should also mention that for scalar code: void f(float *o, int *i) { *o++ = *i++; *o++ = *i++; *o++ = *i++; *o++ = *i++; } where SLP vectorization succeeds, one can see that c-style casts exist for

[Bug middle-end/77399] New: Fails to use native instructions for vector casts

2016-08-29 Thread amonakov at gcc dot gnu.org
Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org CC: nsz at gcc dot gnu.org Target Milestone: --- For the following testcase: typedef int v4si __attribute__((vector_size(16

[Bug middle-end/72776] New: Too large array size not diagnosed properly when inferred from an initializer

2016-08-02 Thread amonakov at gcc dot gnu.org
: diagnostic Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- For the following testcase: static char c[] = {[~0ul] = 1}; the array c would

[Bug c++/71971] Destructor of a global static variable in a shared library is not called on dlclose

2016-07-25 Thread amonakov at gcc dot gnu.org
||amonakov at gcc dot gnu.org Resolution|--- |INVALID --- Comment #2 from Alexander Monakov --- The library is not unloaded on glibc due to STB_GNU_UNIQUE binding on get::i. You can opt-out of creating symbols with that binding using -fno-gnu

[Bug tree-optimization/71980] [5] libraw on x86_64-linux-musl causes ICE in vect_analyze_data_ref_accesses, at tree-vect-data-refs.c:2596

2016-07-23 Thread amonakov at gcc dot gnu.org
||2016-07-23 CC||amonakov at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Alexander Monakov --- This is most likely a duplicate of bug 71702. I've talked with the reporter briefly on IRC

[Bug tree-optimization/71505] -O3 internal compiler error in vect_analyze_data_ref_accesses, at tree-vect-data-refs.c:2596

2016-07-22 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71505 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug tree-optimization/71702] dr_group_sort_cmp violates transitivity required for qsort

2016-07-22 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71702 Alexander Monakov changed: What|Removed |Added CC||tony at kelman dot net --- Comment

[Bug c++/71910] ICE on invalid OpenMP code

2016-07-18 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71910 --- Comment #3 from Alexander Monakov --- Created attachment 38922 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38922=edit preprocessed testcase I can also reproduce this on 5.4 and trunk with a cross-compiler configured with

[Bug c++/71910] ICE on invalid OpenMP code

2016-07-18 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71910 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug libgomp/71844] Data mapping of an array section in the target construct

2016-07-11 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71844 --- Comment #2 from Alexander Monakov --- Jakub, this code is taken verbatim from the openmp-examples document. Should we report it at their github issue tracker? The example in their public git has always been without the A[0:4] map on 'omp

[Bug tree-optimization/71702] dr_group_sort_cmp violates transitivity required for qsort

2016-07-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71702 --- Comment #3 from Alexander Monakov --- On 6/trunk, this issue is fixed or made latent by r230667 that added + STRIP_NOPS (t1); + STRIP_NOPS (t2); to tree-vect-data-refs.c:compare_tree (patch submission here:

[Bug tree-optimization/71702] dr_group_sort_cmp violates transitivity required for qsort

2016-07-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71702 Alexander Monakov changed: What|Removed |Added Attachment #38793|0 |1 is obsolete|

[Bug tree-optimization/71702] dr_group_sort_cmp violates transitivity required for qsort

2016-06-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71702 --- Comment #1 from Alexander Monakov --- Created attachment 38794 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38794=edit qsortchk.c quick'n'dirty LD_PRELOAD transitivity validator for qsort comparator

[Bug tree-optimization/71702] New: dr_group_sort_cmp violates transitivity required for qsort

2016-06-29 Thread amonakov at gcc dot gnu.org
Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- Created attachment 38793 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38793=e

[Bug middle-end/71524] [7 Regression] internal compiler error: in binds_to_current_def_p, at symtab.c:2232

2016-06-26 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71524 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug lto/71536] lto1 ICE: func-static constant in openmp offloaded function

2016-06-15 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71536 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug lto/71535] ICE in LTO1 with -fopenmp offloading

2016-06-15 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71535 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug c++/71495] [6/7 Regression] Spurious "note: initializing argument ... of ..." without any warning/error

2016-06-10 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71495 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug tree-optimization/71289] Fails to optimize unsigned mul overflow check 'A > -1 / B'

2016-05-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71289 Alexander Monakov changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug tree-optimization/71289] Fails to optimize unsigned mul overflow check 'A > -1 / B'

2016-05-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71289 --- Comment #4 from Alexander Monakov --- Author: amonakov Date: Mon May 30 14:37:02 2016 New Revision: 236882 URL: https://gcc.gnu.org/viewcvs?rev=236882=gcc=rev Log: match.pd: optimize unsigned mul overflow check gcc/ 2016-05-28 Alexander

[Bug tree-optimization/71289] Fails to optimize unsigned mul overflow check 'A > -1 / B'

2016-05-26 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71289 --- Comment #2 from Alexander Monakov --- > What do the dumps look like? Gcc is likely to change things to -1 / B < A, > which you don't handle... The dumps didn't help much, but you're right that normally the order is opposite, thanks (I

[Bug tree-optimization/71289] New: Fails to optimize unsigned mul overflow check 'A > -1 / B'

2016-05-26 Thread amonakov at gcc dot gnu.org
ion Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- If A and B are both unsigned, then 'A > -1 / B' is a nice predicate for checking w

[Bug other/70945] Offloading: compatibility of target and offloading toolchains

2016-05-13 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70945 --- Comment #3 from Alexander Monakov --- I like to avoid touching generic stuff for issues like this one. Please see https://gcc.gnu.org/ml/gcc-patches/2016-05/msg01022.html for a brief outline of an alternative solution: I think my proposal of

[Bug other/71064] nvptx offloading: "long double" data type

2016-05-11 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71064 --- Comment #1 from Alexander Monakov --- > (It's generally tuned for speed instead of precision, and does not strive for > full IEEE-754 conformance.) (PTX is an abstract ISA, if it's tuned for anything it's the simplicity of abstraction and

[Bug middle-end/71065] New: Missing diagnostic for statements between OpenMP 'target' and 'teams'

2016-05-11 Thread amonakov at gcc dot gnu.org
-invalid, openmp Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- OpenMP 4.5 says (4.0 had a similar restriction, sans 'declarations

[Bug c/70952] Missing warning for likely-erroneous octal escapes in string literals

2016-05-04 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70952 --- Comment #2 from Alexander Monakov --- Bah, please disregard the last point; '\9' is diagnosed similar to "\9".

[Bug c/70952] Missing warning for likely-erroneous octal escapes in string literals

2016-05-04 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70952 --- Comment #1 from Alexander Monakov --- Octal escapes have no more than three digits by definition, so "\0009" clearly doesn't fall under this warning. Upon further testing, there's no diagnostic for const char c = '\9'; /* same as ... = 9;

[Bug c/70952] New: Missing warning for likely-erroneous octal escapes in string literals

2016-05-04 Thread amonakov at gcc dot gnu.org
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- GCC doesn't warn for: const char s[] = "\008"; (just the two zeros following the backslash become a part of the octal l

[Bug tree-optimization/70804] Missed tail-call

2016-05-04 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70804 Alexander Monakov changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug other/70945] Offloading: compatibility of target and offloading toolchains

2016-05-04 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70945 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug rtl-optimization/70526] [5/6 Regression] GCC 6 miscompiles Firefox JIT compiler

2016-04-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70526 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug tree-optimization/70804] Missed tail-call

2016-04-27 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70804 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug rtl-optimization/70750] New: [6/7 Regression] Load and call no longer combined for indirect calls on x86

2016-04-21 Thread amonakov at gcc dot gnu.org
: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- Target: x86_64-*-*, i?86-*-* int f(int (**p)(void)) { return -p[1](); } gcc-6 -O2 produces: f

[Bug middle-end/70680] New: [5/6 Regression] OpenMP SIMD linear variable privatized too eagerly

2016-04-15 Thread amonakov at gcc dot gnu.org
Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- #include int main() { int i=0; #pragma omp task default(shared) if(0) { #pragma omp simd

[Bug middle-end/70424] New: [4.9/5/6 Regression] Pointer derived from integer gets reduced alignment

2016-03-27 Thread amonakov at gcc dot gnu.org
: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- int f(long a) { int *p=(int*)(a<<1); //asm("" : "+r"(p)); return *p; } Starting from 4.9

[Bug libgomp/65362] OpenACC compilation on Tegra K1 (ARM)

2016-03-18 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65362 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-02-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 --- Comment #10 from Alexander Monakov --- If always using r0 is not an issue, I think it's possible to just use operands[0] (casting it to the right size with subreg:SI, if needed) to avoid using a potentially-reserved hardreg. This would

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-02-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 --- Comment #12 from Alexander Monakov --- > Do you have anything in particular in mind? I mostly wonder why does sh.md change RTL representation of a sibcall that way, instead of simply generating the required relative address load upfront,

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-02-06 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 --- Comment #2 from Alexander Monakov --- (added SH maintainers, Oleg Endo and Kaz Kojima to Cc) In response to the last sentence in my analysis, on IRC Rich pointed out that using r1/r2/r3 should be better that r0 because some instruction can

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-02-06 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 --- Comment #7 from Alexander Monakov --- Oleg, Rich, there's some confusion in comments 4-6. Please unwind all the way back to comment #1, and let me explain the issue once again. I now see that my phrasing back then was insufficiently

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-02-06 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 --- Comment #8 from Alexander Monakov --- Hm, if GCC won't accept clobbering a hardreg that overlaps the output hardregs holding the return value (operands[0]), then it's less obvious. r0 is always suitable then and does not require mentioning

[Bug target/66655] [5/6 Regression] miscompilation due to ipa-ra on MinGW

2016-01-26 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66655 --- Comment #30 from Alexander Monakov --- Nick, can you please post the patch to gcc-patches too, to avoid confusing future people who wouldn't be able to find the explanation of the patch in the archives? (did you get approval for this patch

[Bug target/67260] [sh] Register spill bug for sibcall+complex+softfloat

2016-01-22 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67260 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug fortran/69090] Allocatable arrays mishandled in 'omp declare target'

2016-01-02 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69090 --- Comment #5 from Alexander Monakov --- Ilya, 'omp declare target' is not applicable to arrays with automatic storage, is it? The array needs to be either global, or have the SAVE attribute (similar to 'static' keyword for local vars in C) —

[Bug fortran/69090] New: Allocatable arrays mishandled in 'omp declare target'

2015-12-30 Thread amonakov at gcc dot gnu.org
Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- Compiling and running the following testcase with non-shared-memory accelerator segfaults

[Bug fortran/69090] Allocatable arrays mishandled in 'omp declare target'

2015-12-30 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69090 --- Comment #2 from Alexander Monakov --- I've assigned 'fortran' category to the bug because "allocatable arrays" are specific to Fortran, and the gfortran front-end already does some processing of allocatable arrays for OpenMP directives. I

[Bug middle-end/68706] New: OpenMP reduction lowering too eager to use GOMP_atomic_start/end

2015-12-04 Thread amonakov at gcc dot gnu.org
Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org CC: jakub at gcc dot gnu.org Target Milestone: --- When multiple OpenMP reductions are specified, GCC

[Bug rtl-optimization/68601] GCC miscompiles LLVM on Windows

2015-11-29 Thread amonakov at gcc dot gnu.org
||amonakov at gcc dot gnu.org Resolution|--- |DUPLICATE --- Comment #7 from Alexander Monakov --- I have filed this issue previously as https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66655 (unfixed, has minimized repro). A workaround on gcc side

[Bug target/66655] [5/6 Regression] miscompilation due to ipa-ra on MinGW

2015-11-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66655 Alexander Monakov changed: What|Removed |Added CC||kfischer at college dot harvard.ed

[Bug libgomp/65099] nvptx offloading: hard-coded 64-bit assumptions

2015-10-23 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65099 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org

[Bug target/66655] New: [5.1 Regression] miscompilation due to ipa-ra on MinGW

2015-06-24 Thread amonakov at gcc dot gnu.org
Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- Target: x86_64-w64-mingw32 Created attachment 35846 -- https://gcc.gnu.org/bugzilla

[Bug tree-optimization/66512] PRE fails to optimize calls to pure functions in C++, ok in C

2015-06-15 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66512 --- Comment #2 from Alexander Monakov amonakov at gcc dot gnu.org --- In that case I'd like to contribute a documentation patch to make that clear in the pure/const attribute information, but I need more explanation. I see that int p(void

[Bug tree-optimization/66512] New: PRE fails to optimize calls to pure functions in C++, ok in C

2015-06-11 Thread amonakov at gcc dot gnu.org
Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Target Milestone: --- The following testcase: int p(void) __attribute__((const)); void g(int); void f() { for (;;) g(p()); } is optimized

[Bug target/65753] [i386] Incorrect tail call inhibition logic on i386 (32-bit)

2015-05-11 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65753 --- Comment #5 from Alexander Monakov amonakov at gcc dot gnu.org --- Author: amonakov Date: Mon May 11 16:10:24 2015 New Revision: 223005 URL: https://gcc.gnu.org/viewcvs?rev=223005root=gccview=rev Log: PR target/65753 * config

[Bug target/65753] [i386] Incorrect tail call inhibition logic on i386 (32-bit)

2015-05-11 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65753 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED

[Bug rtl-optimization/48302] ICE: SIGSEGV in reposition_prologue_and_epilogue_notes (function.c:5662) with -fcrossjumping -fselective-scheduling2

2015-05-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48302 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED

[Bug rtl-optimization/48442] ICE: in init_seqno, at sel-sched.c:6767 with -Os -fselective-scheduling2 --param max-sched-extend-regions-iters=100

2015-05-07 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48442 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED

[Bug target/65753] [i386] Incorrect tail call inhibition logic on i386 (32-bit)

2015-04-14 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65753 --- Comment #4 from Alexander Monakov amonakov at gcc dot gnu.org --- The check rejecting indirect calls was introduced with commit https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=069db0ae0a5b5b61d64731a94eea002fb3c9d901 (gcc-patches thread

[Bug target/65753] [i386] Incorrect tail call inhibition logic on i386 (32-bit)

2015-04-13 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65753 --- Comment #2 from Alexander Monakov amonakov at gcc dot gnu.org --- For a simpler testcase: void g(void (*f)(void)) { f(); } gcc/cc1 -fPIC -O2 -m32: g: subl$12, %esp call*16(%esp) addl$12, %esp ret Here %ebx

[Bug target/65753] [i386] Incorrect tail call inhibition logic on i386 (32-bit)

2015-04-13 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65753 --- Comment #1 from Alexander Monakov amonakov at gcc dot gnu.org --- Example testcase: void *lookup_f(void); void g() { void (*f)(void) = lookup_f(); f(); } With -O2 -fPIC, on x86-64 GCC produces the desired tail call: g: subq$8

[Bug lto/57703] Assembler function definition moved to a different ltrans then call

2014-12-28 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703 --- Comment #10 from Alexander Monakov amonakov at gcc dot gnu.org --- Bug 64420, which was marked as a duplicate, presents an example where there's no diagnostics at build time (linking succeeds), but the resulting code is wrong and will fail

[Bug ipa/64420] New: LTO can miscompile IFUNCs designated via top-level asm

2014-12-27 Thread amonakov at gcc dot gnu.org
Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: amonakov at gcc dot gnu.org Minimal testcase: $ cat test.c EOF #ifdef USE_ASM void *f_resolver() asm(f); asm(.type f, %gnu_indirect_function); void *g_resolver() asm(g); asm(.type g, %gnu_indirect_function); #else int f

[Bug target/62011] False Data Dependency in popcnt instruction

2014-08-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62011 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added CC||amonakov

[Bug ipa/61144] [4.9/4.10 Regression] Invalid optimizations for extern vars with local weak definitions

2014-07-14 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added CC||amonakov

[Bug ipa/61144] [4.9/4.10 Regression] Invalid optimizations for extern vars with local weak definitions

2014-07-14 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61144 Alexander Monakov amonakov at gcc dot gnu.org changed: What|Removed |Added Attachment #32830|0 |1

<    5   6   7   8   9   10   11   12   >