On Fri, Mar 13, 2015 at 7:54 AM, Max Filippov jcmvb...@gmail.com wrote:
1. in windowed ABI stack pointer update is always split into two opcodes:
add and movsp. How gcc optimization passes are supposed to know that
'movsp' is related to 'add' and that stack allocation is complete only after
On Fri, Mar 13, 2015 at 10:04 AM, Marc Gauthier m...@cadence.com wrote:
Other than the required 16-byte stack alignment, there's nothing in
the ABI that requires these extra 16 bytes. Perhaps there was a bad
implementation of the alloca exception handler at some point a long
time ago that
On Sat, Apr 11, 2015 at 12:43 AM, Max Filippov jcmvb...@gmail.com wrote:
On Sat, Apr 11, 2015 at 2:16 AM, augustine.sterl...@gmail.com
augustine.sterl...@gmail.com wrote:
On Fri, Apr 10, 2015 at 1:18 PM, Max Filippov jcmvb...@gmail.com wrote:
How can we have a mulsi3 pattern that don't get
On Fri, Apr 10, 2015 at 12:15 PM, Max Filippov jcmvb...@gmail.com wrote:
Then configuration w/o multiplication should call helper at -O0 and
use shift at higher optimization levels?
That is what I would expect.
On Fri, Apr 10, 2015 at 1:18 PM, Max Filippov jcmvb...@gmail.com wrote:
Ok, then I see why this doesn't happen: mulsi3 pattern matching is
conditional on TARGET_MUL32, so when TARGET_MUL32 ==0 and
expand_simple_binop emits a call to a helper it's not considered
mulsi3, it's just a call:
On Tue, Sep 6, 2016 at 11:55 PM, Thomas Schwinge
wrote:
> Hi!
>
> Neither do I really know anything about Xtensa, nor do I have a lot of
> experience in these parts of GCC back ends, but:
There is a lot of background to know here. Unfortunately, I have no
familiarity
On Thu, Sep 8, 2016 at 8:14 AM, Oleksij Rempel <li...@rempel-privat.de> wrote:
> Am 07.09.2016 um 18:21 schrieb augustine.sterl...@gmail.com:
>> On Tue, Sep 6, 2016 at 11:55 PM, Thomas Schwinge
>> <tho...@codesourcery.com> wrote:
>>> Hi!
>>>
>>&g
On Wed, Sep 21, 2016 at 1:59 AM, Oleksij Rempel wrote:
> So, first step is done. Our firmware is using GCC 6.2.
>
> If i see it correctly, main problem are binutils. First of all we need
> custom binutils to compile GCC assambler code with custom opcodes - it's
> a horror.
On Wed, Sep 7, 2016 at 9:21 AM, augustine.sterl...@gmail.com
<augustine.sterl...@gmail.com> wrote:
> Hope this helps, and I'm happy to answer more questions.
Also, one technique commonly used by people who ship software for
Xtensa is to write it such that it could compile for any varia
On Tue, May 30, 2017 at 3:26 PM, Max Filippov wrote:
> Hi Sterling,
>
> for xtensa we have a number of bugfixes in the mainline that were never
> backported to the stable branches. It'd be great having them in the stable
> gcc releases instead of carrying the fixes in various
On Tue, Jun 24, 2014 at 10:20 PM, Jan Hubicka hubi...@ucw.cz wrote:
Hi!
This is the xtensa fallout, see
http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=272418
g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions
-fno-rtti -fasynchronous-unwind-tables -W
On Fri, Jul 4, 2014 at 2:11 PM, Jan-Benedict Glaw jbg...@lug-owl.de wrote:
On Wed, 2014-06-25 08:55:57 -0700, augustine.sterl...@gmail.com
augustine.sterl...@gmail.com wrote:
On Tue, Jun 24, 2014 at 10:20 PM, Jan Hubicka hubi...@ucw.cz wrote:
This is the xtensa fallout, see
http
On Sun, Oct 12, 2014 at 3:46 PM, Max Filippov jcmvb...@gmail.com wrote:
Hi Sterling,
this series fixes two bugs in xtensa.md:
HI Max, thanks for this. I don't see a patch though.
On Sun, Oct 12, 2014 at 3:46 PM, Max Filippov jcmvb...@gmail.com wrote:
2014-10-10 Max Filippov jcmvb...@gmail.com
gcc/
* config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
* config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
!TARGET_HARD_FLOAT_POSTINC.
On Sun, Oct 12, 2014 at 3:46 PM, Max Filippov jcmvb...@gmail.com wrote:
xtensa ISA never implemented FP division, reciprocal, square root and
inverse square root as single opcode. Remove patterns that can emit
them.
2014-10-09 Max Filippov jcmvb...@gmail.com
gcc/
*
On Fri, Oct 10, 2014 at 6:59 AM, Felix Yang fei.yang0...@gmail.com wrote:
Hi Sterling,
I made some improvement to the patch. Two changes:
1. TARGET_LOOPS is now used as a condition of the doloop related
patterns, which is more elegant.
Fine.
2. As the trip count register of the
want
this patch applied as a first step, OK?
Cheers,
Felix
On Tue, Oct 14, 2014 at 12:09 AM, augustine.sterl...@gmail.com
augustine.sterl...@gmail.com wrote:
On Fri, Oct 10, 2014 at 6:59 AM, Felix Yang fei.yang0...@gmail.com wrote:
Hi Sterling,
I made some improvement to the patch. Two
at 12:09 AM, augustine.sterl...@gmail.com
augustine.sterl...@gmail.com wrote:
On Fri, Oct 10, 2014 at 6:59 AM, Felix Yang fei.yang0...@gmail.com
wrote:
Hi Sterling,
I made some improvement to the patch. Two changes:
1. TARGET_LOOPS is now used as a condition of the doloop
related
On Tue, Oct 21, 2014 at 7:20 PM, Yangfei (Felix) felix.y...@huawei.com wrote:
If the tripcount spill issue is not handled in the pattern, ICE may happen
then.
Here reload is trying to spill pseudo 173, but a memory operand is not
allowed in zero_cost_loop_end pattern.
And this is what I am
On Thu, Oct 23, 2014 at 9:12 PM, Yangfei (Felix) felix.y...@huawei.com wrote:
Here the key point is we need a general purpose register for the loop
instruction.
So the question to ask here is, How does this work today, without
loop instructions? Somehow--even when it has been spilled--a branch
I mean without your patch at all.
On Thu, Oct 23, 2014 at 11:30 PM, Yangfei (Felix) felix.y...@huawei.com wrote:
On Thu, Oct 23, 2014 at 9:12 PM, Yangfei (Felix) felix.y...@huawei.com
wrote:
Here the key point is we need a general purpose register for the loop
instruction.
So the
On Thu, Oct 23, 2014 at 11:40 PM, Yangfei (Felix) felix.y...@huawei.com wrote:
1. The original xtensa port never generates loop instruction at all.
2. A port doesn't need to implement hwloop_pattern_reg hook if it has no
zero-cost loop instruction.
Is that clear?
We are talking in circles.
On Sat, Oct 25, 2014 at 2:17 AM, Richard Sandiford
rdsandif...@googlemail.com wrote:
This is part of a series to remove uses of for_each_rtx from the ports.
Tested by making sure there were no code changes for gcc.dg, gcc.c-torture
and g++.dg for xtensa-elf. OK to install?
OK for Xtensa
On Tue, Oct 28, 2014 at 5:22 AM, Yangfei (Felix) felix.y...@huawei.com wrote:
Hi Sterling,
How do you think about this issue?
As c6x/bfin port handles this the same way, is it OK for the patch to be
applied?
Thanks.
I have committed this patch as attached. I made a couple of minor
On Mon, Dec 29, 2014 at 3:12 PM, Max Filippov jcmvb...@gmail.com wrote:
Currently building gcc for xtensa configuration with XCHAL_HAVE_LOOPS
set to 0 fails with the following error:
xtensa.c:3952: undefined reference to `reorg_loops(bool, hw_doloop_hooks*)'
Only compile target-specific
On Sat, Feb 28, 2015 at 10:14 AM, Max Filippov jcmvb...@gmail.com wrote:
call0 is an ABI that doesn't use register windows.
2015-02-28 Max Filippov jcmvb...@gmail.com
gcc/
* config/xtensa/constraints.md (a constraint): Include stack
pointer in case of call0 ABI.
On Sat, Feb 28, 2015 at 10:14 AM, Max Filippov jcmvb...@gmail.com wrote:
This allows a target to support both windowed and non-windowed ABI.
2015-02-28 Max Filippov jcmvb...@gmail.com
gcc/
* builtins.c (expand_builtin_return_addr): Add
RETURN_ADDR_IN_PREVIOUS_FRAME to 'if'
On Wed, Feb 25, 2015 at 6:39 AM, Jeff Law l...@redhat.com wrote:
Done.
jeff
Thanks!
On Sat, Feb 21, 2015 at 4:19 PM, Max Filippov jcmvb...@gmail.com wrote:
gcc for xtensa always aligns data at least to a word boundary, even when
it has smaller natural alignment. This results in unexpectedly high data
section sizes and unreasonable amount of wasted space when linking
objects
On Tue, Feb 24, 2015 at 9:05 AM, Chen Gang S gang.c...@sunrus.com.cn wrote:
- After this patch, it can continue compiling, but can we be sure that
it always generates correct code for execution?
After this patch, it should be no worse than it was--lucky.
Someone is working on fixing the
On Tue, Feb 24, 2015 at 2:05 PM, Max Filippov jcmvb...@gmail.com wrote:
Hi,
On Tue, Feb 24, 2015 at 6:54 PM, Jeff Law l...@redhat.com wrote:
You can tackle them in any order you wish. However, I suspect fixing the
xtensa backend may be easier. I don't have any good way to test xtensa, but
On Tue, Feb 24, 2015 at 4:45 PM, Max Filippov jcmvb...@gmail.com wrote:
Sterling,
I was referring Jeff's patch, do you say that his patch is not the proper
fix?
No, I was thinking of Chen's patch. Jeff's patch is the right one.
Jeff, your patch is OK for xtensa. Do you mind checking it in?
On Tue, May 19, 2015 at 8:31 PM, Max Filippov jcmvb...@gmail.com wrote:
2015-05-20 Max Filippov jcmvb...@gmail.com
gcc/
* config/xtensa/xtensa.c (init_alignment_context): Replace MULT
by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
Approved, please apply.
On Tue, Jun 9, 2015 at 3:14 PM, Max Filippov jcmvb...@gmail.com wrote:
gcc/
* config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
* config/xtensa/xtensa.md (define_attr type): New type trap.
(define_insn trap): New definition.
---
Changes v1-v2:
- drop break.n,
On Mon, Aug 17, 2015 at 2:59 PM, Max Filippov jcmvb...@gmail.com wrote:
This allows having exception cleanup code in binaries that don't
register their unwind tables.
2015-08-18 Max Filippov jcmvb...@gmail.com
libgcc/
* config/xtensa/t-windowed (LIB2ADDEH): Replace unwind-dw2-fde
On Mon, Aug 17, 2015 at 2:59 PM, Max Filippov jcmvb...@gmail.com wrote:
2015-08-18 Max Filippov jcmvb...@gmail.com
libgcc/
* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill): Use
CALL12 followed by series of ENTRY to spill windowed registers.
On Mon, Aug 17, 2015 at 2:59 PM, Max Filippov jcmvb...@gmail.com wrote:
2015-08-18 Max Filippov jcmvb...@gmail.com
libgcc/
* config/xtensa/unwind-dw2-xtensa.c (_Unwind_GetCFA): Return
context-sp instead of context-cfa.
Approved.
On Tue, Aug 11, 2015 at 6:09 PM, Max Filippov jcmvb...@gmail.com wrote:
With support from assembler this option allows compiling huge functions,
where single literal pool at the beginning of a function may not be
reachable by L32R instructions at its end.
Currently assembler --auto-litpools
On Tue, Sep 15, 2015 at 3:00 AM, Max Filippov wrote:
> 2015-09-15 Max Filippov
> gcc/
> * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
> to pass TLS call argument, according to current ABI.
> *
On Tue, Sep 15, 2015 at 3:00 AM, Max Filippov wrote:
> 2015-09-15 Max Filippov
> gcc/
> * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
> definition.
> (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
On Wed, Sep 30, 2015 at 8:23 AM, Max Filippov wrote:
> 2015-09-30 Max Filippov
> gcc/
> * config.gcc (xtensa*-*-uclinux*): New configuration.
> * config/xtensa/uclinux.h: New file.
> * config/xtensa/uclinux.opt: New file.
>
>
On Tue, Feb 16, 2016 at 4:35 PM, Max Filippov wrote:
> Functions __muldf3_aux, __divdf3_aux, __mulsf3_aux and __divsf3_aux
> don't start with leaf_entry, so they need explicit .literal_position,
> otherwise libgcc build fails in the presence of --text-section-literals.
>
>
On Fri, Aug 26, 2016 at 12:02 AM, Max Filippov wrote:
> This enables options -fstack-usage and -Wstack-usage.
>
> 2016-08-21 Max Filippov
> gcc/
> * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
>
On Mon, Oct 17, 2016 at 4:23 PM, Max Filippov wrote:
> Define LIB2ADDEH_XTENSA_UNWIND_DW2_FDE to unwind-dw2-fde.c in
> xtensa/t-elf and to unwind-dw2-fde-dip.c in xtensa/t-linux and use
> LIB2ADDEH_XTENSA_UNWIND_DW2_FDE in LIB2ADDEH definition.
>
> 2016-10-17 Max Filippov
On Fri, Oct 14, 2016 at 12:14 PM, Max Filippov wrote:
>
> Use new FPU instruction sequences documented in the ISA book to
> implement __divsf3, __divdf3, __recipsf2, __recipdf2, __rsqrtsf2,
> __rsqrtdf2 and __ieee754_sqrtf and __ieee754_sqrt.
>
> 2013-02-12 Ding-Kai Chen
On Mon, Oct 31, 2016 at 11:32 PM, Max Filippov wrote:
> 2016-10-26 Max Filippov
> gcc/
> * config/xtensa/xtensa-protos.h
> (xtensa_use_return_instruction_p): New prototype.
> * config/xtensa/xtensa.c (xtensa_current_frame_size,
>
On Tue, Nov 1, 2016 at 12:11 PM, Max Filippov wrote:
> xtensa gcc gets ICE on pr59037.c test because its xtensa_output_literal
> function cannot handle integer literals of sizes other than 4 and 8,
> whereas the test uses 16-byte int vector.
> Split integer literal formatting
On Tue, Nov 1, 2016 at 12:45 PM, Max Filippov wrote:
> With jump trampolines implemented in binutils since 2.25 and enabled by
> default this test no longer fails on xtensa.
>
> 2016-11-01 Max Filippov
> gcc/testsuite/
> *
On Tue, Nov 29, 2016 at 2:08 PM, Max Filippov wrote:
> 2016-11-29 Max Filippov
> gcc/
> * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
> overhead loop start between a call and its CALL_ARG_LOCATION
> note.
Approved.
On Mon, May 22, 2017 at 2:09 PM, Max Filippov wrote:
> XCHAL_* macros from the xtensa-config.h are used in a number of places
> that require them to be preprocessor constants. Rewrite these places so
> that non-constant XCHAL_* definitions could be used there.
This whole
On Mon, May 29, 2017 at 4:11 AM, Max Filippov wrote:
> 2017-05-28 Max Filippov
> gcc/
> * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
> Mark 'to' argument with ATTRIBUTE_UNUSED.
This is ok.
On Mon, May 29, 2017 at 4:11 AM, Max Filippov wrote:
> HOST_WIDE_INT may not be long as assumed in print_operand and
> xtensa_emit_call. Use HOST_WIDE_INT_PRINT_DEC/HOST_WIDE_INT_PRINT_HEX
> format strings instead of %ld/0x%lx. This fixes incorrect assembly code
> generation
On Mon, May 22, 2017 at 2:09 PM, Max Filippov wrote:
> XCHAL_* macros from the xtensa-config.h are used in a number of places
> that require them to be preprocessor constants. Rewrite these places so
> that non-constant XCHAL_* definitions could be used there.
>
> 2017-05-22
On Mon, May 22, 2017 at 2:09 PM, Max Filippov wrote:
> Now that XCHAL_* macros don't have to be preprocessor constants add
> include/xtensa-dynconfig.h that defines them as fields of a structure
> returned from the xtensa_get_config function.
> Define that structure and fill
On Mon, May 8, 2017 at 3:55 PM, Max Filippov wrote:
> gcc/
> 2017-03-27 Max Filippov
>
> * config/xtensa/xtensa-protos.h
> (xtensa_initial_elimination_offset): New declaration.
> * config/xtensa/xtensa.c
On Mon, Sep 11, 2017 at 2:16 PM, Max Filippov wrote:
> 2017-09-11 Max Filippov
> gcc/
> * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
> words of E_DImode object are reachable by xtensa_uimm8x4 access.
Approved. Please
On Mon, Dec 4, 2017 at 1:28 PM, Max Filippov wrote:
> gcc/
> 2017-12-04 Max Filippov
>
> * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
> function.
> (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
> *
On Mon, Jun 18, 2018 at 3:10 PM, Max Filippov wrote:
> gcc/
> 2018-06-17 Max Filippov
>
> * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
> constant.
> (allocate_stack, frame_blockage, *frame_blockage): New patterns.
>
This is OK.
On Tue, Jan 30, 2018 at 8:02 PM, Max Filippov wrote:
>
> libgcc/
> 2018-01-31 Max Filippov
>
> * config/xtensa/ieee754-df.S (__adddf3_aux): Add
> .literal_position directive.
> * config/xtensa/ieee754-sf.S (__addsf3_aux):
On Tue, Sep 4, 2018 at 9:42 AM Max Filippov wrote:
> NAND is ~(a1 & a2), but xtensa_expand_atomic does ~a1 & a2.
> That fixes libatomic tests atomic-op-{1,2}.
>
> gcc/
> 2018-09-04 Max Filippov
>
> * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
> XOR
On Tue, Jan 23, 2018 at 9:55 AM, Max Filippov wrote:
> libgcc/
> 2018-01-22 Max Filippov
>
> * config/xtensa/ieee754-df.S (__addsf3, __subsf3, __mulsf3)
> (__divsf3): Make NaN return value quiet.
> * config/xtensa/ieee754-sf.S
On Mon, Nov 5, 2018 at 11:07 AM Max Filippov wrote:
> xtensa-uclinux uses bFLT executable file format that cannot relocate
> fields representing offsets from data to code. C++ objects built as PIC
> use offsets to encode FDE structures. As a result C++ exception handling
> doesn't work correctly
On Sun, Dec 30, 2018 at 1:06 AM Max Filippov wrote:
>
> Xtensa architecture is not affected by speculation.
>
> gcc/
> 2018-12-30 Max Filippov
>
> * config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
> Define to speculation_safe_value_not_needed.
Approved.
On Tue, May 14, 2019 at 10:28 AM Max Filippov wrote:
>
> Let backends call assemble_start_function after they have generated
> thunk function body so that a constant pool could be output if it is
> required. This may help backends to avoid implementing custom constant
> loading code specifically
On Tue, Jun 18, 2019 at 2:27 PM Max Filippov wrote:
>
> Stack pointer adjustment code in prologue missed a case of no
> callee-saved registers and a stack frame size bigger than 128 bytes.
> Handle that case.
>
> This fixes the following gcc tests with call0 ABI:
>
On Tue, Jun 25, 2019 at 1:41 PM wrote:
>
> From: Aaron Sawdey
>
> * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
> ---
> gcc/config/xtensa/xtensa.md | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
OK for xtensa.
On Tue, Sep 24, 2019 at 5:41 PM Max Filippov wrote:
>
> Xtensa hwloop_optimize segfaults when zero overhead loop is about to be
> inserted as the first instruction of the function.
> Insert zero overhead loop instruction into new basic block before the
> loop when basic block that precedes the
67 matches
Mail list logo