Hello,
I have a problem with a transformation I'm working on and I would appreciate
some help. The transformation I am working on removes fields in structs early
during link-time. For the purposes of development and this example, my
transformation deletes the field identified as "delete_me" from t
Hi Richard,
Thanks! I can confirm that changing VAR_DECL's type
and calling relayout_decl fixes my problem.
On 2020-01-28 4:35 a.m., Richard Biener wrote:
> On Mon, Jan 27, 2020 at 6:41 PM Erick Ochoa
> wrote:
>>
>> Hello,
>>
>> I have a problem with a transf
Hello,
I am trying to find out the arguments of functions which are undefined
during LTO.
Basically:
gcc_assert(in_lto_p && !cnode->definition)
// Do we have arguments?
gcc_assert(DECL_ARGUMENTS(cnode->decl)) // fails
// No, we don't.
As I understand it, functions which are not defined are o
On 12.03.20 08:48, Jan Hubicka wrote:
Hello,
Hello,
I am trying to find out the arguments of functions which are undefined
during LTO.
Basically:
gcc_assert(in_lto_p && !cnode->definition)
// Do we have arguments?
gcc_assert(DECL_ARGUMENTS(cnode->decl)) // fails
// No, we don't.
As I und
On 13.03.20 00:44, Richard Biener wrote:
On Thu, Mar 12, 2020 at 5:31 PM Erick Ochoa
wrote:
Hello,
I am trying to find out the arguments of functions which are undefined
during LTO.
Basically:
gcc_assert(in_lto_p && !cnode->definition)
// Do we have arguments?
gcc_assert(DEC
pass.h
@@ -501,6 +501,7 @@ extern ipa_opt_pass_d *make_pass_ipa_fn_summary
(gcc::context *ctxt);
extern ipa_opt_pass_d *make_pass_ipa_inline (gcc::context *ctxt);
extern simple_ipa_opt_pass *make_pass_ipa_free_lang_data (gcc::context
*ctxt);
extern simple_ipa_opt_pass *make_pass_ipa_free_fn_summary
(
Hello,
Can someone help me understand better GCC's profile driven
instrumentation? I know this can be a long topic, but I am not looking
for a long discussion. I am just trying to orient myself regarding GCC's
FDO implementation.
1. I know that gcc uses an instrumentation based profiler. Thi
On 07/04/2020 14:34, Michael Matz wrote:
Hello,
On Tue, 7 Apr 2020, Erick Ochoa wrote:
Thanks for this lead! It is almost exactly what I need. I do have one more
question about this. It seems that the types obtained via
FOR_EACH_FUNCTION_ARGS and TREE_TYPE are different pointers when
Hello,
Does anyone know if the following text from the GCC internals [0] is
outdated?
-O3
Optimize yet more. -O3 turns on all optimizations specified by -O2
and also turns on the following optimization flags:
-fgcse-after-reload
-fipa-cp-clone
-floop-interchange
-floop-
ee_slp_vectorize, NULL, 1 },
opts.c:{ OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 },
opts.c:{ OPT_LEVELS_3_PLUS, OPT_fvect_cost_model_, NULL,
VECT_COST_MODEL_DYNAMIC },
opts.c:{ OPT_LEVELS_3_PLUS, OPT_fversion_loops_for_strides, NULL, 1 },
On 22.04.2020, at 16:01, Erick Ochoa wr
On 22/04/2020 16:25, Jakub Jelinek wrote:
On Wed, Apr 22, 2020 at 04:17:56PM +0200, Philipp Tomsich wrote:
ptomsich@android:~/riscv/gcc/gcc$ git grep OPT_LEVELS_3
common/common-target.h: OPT_LEVELS_3_PLUS, /* -O3 and above. */
common/common-target.h: OPT_LEVELS_3_PLUS_AND_SIZE, /* -O3 and
Hi,
Does the analysis framework available in GCC 10 is an instance of an
IFDS or an IDE framework? The Analyzer Internals [0] refers to the IFDS
paper [1], but I am not sure if this is only to provide a reference to
the definition of exploded supergraph.
Also, if I want to implement my own I
Hi,
I am trying to find out how to use the alias and/or points-to analysis
in GCC. Ideally, I would like to find a function that given an
allocation site, the return value is a set of pointers which may point
to memory allocated from that allocation site.
For example:
int
main(int argc, cha
On 06/05/2020 14:25, Richard Biener wrote:
On Wed, May 6, 2020 at 12:26 PM Erick Ochoa
wrote:
Hi,
I am trying to find out how to use the alias and/or points-to analysis
in GCC. Ideally, I would like to find a function that given an
allocation site, the return value is a set of pointers
On 06/05/2020 18:40, Richard Biener wrote:
On Wed, May 6, 2020 at 3:04 PM Erick Ochoa
wrote:
On 06/05/2020 14:25, Richard Biener wrote:
On Wed, May 6, 2020 at 12:26 PM Erick Ochoa
wrote:
Hi,
I am trying to find out how to use the alias and/or points-to analysis
in GCC. Ideally, I
Hello,
I have been working on link time optimization for C that may change the
size of structs (at link time). We are close to sharing the results we
have so far, but there are a couple of missing pieces left to work on:
Implementations of sizeof and offsetof that support this change in
stru
On 29.06.20 04:05, Richard Biener wrote:
On Mon, Jun 29, 2020 at 11:56 AM Erick Ochoa
wrote:
Hello,
I have been working on link time optimization for C that may change the
size of structs (at link time). We are close to sharing the results we
have so far, but there are a couple of missing
On 29.06.20 04:08, Richard Biener wrote:
On Mon, Jun 29, 2020 at 1:05 PM Richard Biener
wrote:
On Mon, Jun 29, 2020 at 11:56 AM Erick Ochoa
wrote:
Hello,
I have been working on link time optimization for C that may change the
size of structs (at link time). We are close to sharing the
On 29.06.20 06:05, Martin Jambor wrote:
Hi,
On Mon, Jun 29 2020, Erick Ochoa wrote:
== How do we get what we want? ==
Ideally what we want is to:
[...]
* Disable constant propagation and other optimizations:
* possibly __attribute__((noipa))
[...]
== What's the WORST
Forgot to mention that these functions take a function pointer as a
parameter and as a result, the specialized functions are able to replace
the indirect function call with a direct function call.
On 10/07/2020 13:17, Erick Ochoa wrote:
Hello,
I'm working on an optimization and I encoun
Hello,
I'm working on an optimization and I encountered this interesting
behaviour. There are a couple of functions that are specialized when the
program is not compiled with PGO (-fprofile-generate and -fprofile-use)
However, when the program is compiled with PGO the compiler does not
speci
Hello,
is there a way to determine just how an argument is affected by SRA
after SRA has occured? I have the following functions:
source:
_Bool
returnLastField (struct arc anArc)
{
return anArc.c;
}
_Bool
returnNextField (struct arc anArc)
{
_Bool *ptr = &(anArc.a);
ptr = ptr + 1; // a
On 13/07/2020 13:13, Martin Jambor wrote:
Hi,
On Fri, Jul 10 2020, Erick Ochoa wrote:
Hello,
is there a way to determine just how an argument is affected by SRA
after SRA has occured?
How would I be able to determine the effects of ISRA on the struct argument?
For the changes performed
. This parameter is used for both: function specialization within
a particular context and for all contexts.
On 10/07/2020 13:19, Erick Ochoa wrote:
Forgot to mention that these functions take a function pointer as a
parameter and as a result, the specialized functions are able to replace
the
Hello,
I have a function foo defined on a source file. Sometimes, a function
pointer pointing to foo is passed as a parameter to other functions
where foo is called indirectly. This indirect call is specialized during
link time. Still at link time, I analyze the function call the following
wa
body?
Thanks.
On 14/07/2020 12:37, Erick Ochoa wrote:
Hello,
I have a function foo defined on a source file. Sometimes, a function
pointer pointing to foo is passed as a parameter to other functions
where foo is called indirectly. This indirect call is specialized during
link time. Still at link
desired behaviour that functions which addresses are taken to
be marked as unreachable (and therefore being unregistered from the
symbol table)?
If needed I can reduce the problem, but I don't want to do it if this is
the intended behaviour.
Thanks!
On 14.07.20 04:19, Erick Ochoa wrote:
Act
On 15.07.20 05:03, Martin Jambor wrote:
Hi,
On Tue, Jul 14 2020, Erick Ochoa wrote:
On 14/07/2020 12:37, Erick Ochoa wrote:
Hello,
I have a function foo defined on a source file. Sometimes, a function
pointer pointing to foo is passed as a parameter to other functions
where foo is called
On 16/07/2020 12:11, Martin Jambor wrote:
Hi,
On Wed, Jul 15 2020, Erick Ochoa wrote:
On 15.07.20 05:03, Martin Jambor wrote:
[...]
At IPA time, the best way is always to look at the call graph edges,
something like:
cgraph_edge *cs = caller_cgraph_node->get_edge (s);
exam
Hi,
is there a way to find out that a function is a clone of another
function after materialization? I believe that `clone_of_p` only works
before materialization. I tried and no clones were detected.
Thanks!
This patchset brings back struct reorg to GCC.
We’ve been working on improving cache utilization recently and would
like to share our current implementation to receive some feedback on it.
Essentially, we’ve implemented the following components:
Type-based escape analysis to determine if
On 27/07/2020 14:36, Richard Biener wrote:
On Fri, Jul 24, 2020 at 5:43 PM Erick Ochoa
wrote:
This patchset brings back struct reorg to GCC.
We’ve been working on improving cache utilization recently and would
like to share our current implementation to receive some feedback on it
Hello again,
Thanks for replying to my previous thread. I am thankful for all input
received and addressed the comments which I could address. I have been
working on the past two weeks on fixing the style and adding comments
explaining classes and families of functions. I have also added a
pr
Hello,
I'm looking to understand better the points-to analysis (IPA-PTA) and
the alias analysis (build_alias).
How is the information produced by IPA-PTA consumed?
Are alias sets in build_alias computed by the intersections of the
points_to_set(s) (computed by IPA-PTA)?
My intuition tells
Hello again,
I have committed a couple of changes to the branch
refs/vendors/ARM/heads/arm-struct-reorg-wip
where my transformations are currently residing. This week I'll be
working on fixing several warnings and fuzzying these passes.
2020-08-17 Erick Ochoa
* Can be bootstr
Hello,
I am looking at the dump for the build_alias pass. I see a lot of
variables with the naming convention D.[0-9]* in the points-to sets
being printed.
When I compile with
-fdump-tree-all-all
I can see that the suffix D.[0-9]* is appended to some gimple variables.
I initially imagined
chinery and tests.
If there is anything we can do to make this easier for you to review do let us
know.
Thanks,
Tamar
-Original Message-
From: Erick Ochoa
Sent: Monday, August 17, 2020 2:53 PM
To: GCC Development
Cc: Christoph Müllner ;
philipp.toms...@theobroma-systems.com; Tamar Chri
On 24/08/2020 09:40, Richard Biener wrote:
On Mon, Aug 17, 2020 at 3:22 PM Erick Ochoa
wrote:
Hello,
I'm looking to understand better the points-to analysis (IPA-PTA) and
the alias analysis (build_alias).
How is the information produced by IPA-PTA consumed?
Are alias sets in build_
Hi,
I'm trying to understand how the escape analysis in IPA-PTA works. I was
testing a hypothesis where if a structure contains an array of
characters and this array of characters is passed to fopen, the
structure and all subfields will escape.
To do this, I made a program that has a global
On 25/08/2020 17:10, Richard Biener wrote:
On August 25, 2020 3:09:13 PM GMT+02:00, Erick Ochoa
wrote:
Hi,
I'm trying to understand how the escape analysis in IPA-PTA works. I
was
testing a hypothesis where if a structure contains an array of
characters and this array of characte
On 25/08/2020 17:19, Erick Ochoa wrote:
On 25/08/2020 17:10, Richard Biener wrote:
On August 25, 2020 3:09:13 PM GMT+02:00, Erick Ochoa
wrote:
Hi,
I'm trying to understand how the escape analysis in IPA-PTA works. I
was
testing a hypothesis where if a structure contains an arr
On 25/08/2020 22:03, Richard Biener wrote:
On August 25, 2020 6:36:19 PM GMT+02:00, Erick Ochoa
wrote:
On 25/08/2020 17:19, Erick Ochoa wrote:
On 25/08/2020 17:10, Richard Biener wrote:
On August 25, 2020 3:09:13 PM GMT+02:00, Erick Ochoa
wrote:
Hi,
I'm trying to understan
On 26/08/2020 10:36, Erick Ochoa wrote:
On 25/08/2020 22:03, Richard Biener wrote:
On August 25, 2020 6:36:19 PM GMT+02:00, Erick Ochoa
wrote:
On 25/08/2020 17:19, Erick Ochoa wrote:
On 25/08/2020 17:10, Richard Biener wrote:
On August 25, 2020 3:09:13 PM GMT+02:00, Erick Ochoa
Hi,
I'm testing the precision of IPA-PTA when compiling with -flto. I found
this case when a global variable is marked as escaping even if the
variable is a primitive type and no address is taken.
This is the result of IPA-PTA which I believe is wrong.
buff2 = { ESCAPED NONLOCAL }
buff1 = {
Hello,
I am trying to find out all pointers which alias a pointer and place
them in a set.
I am using `ptr_derefs_may_alias_p` to find out if two pointers may
point to the same memory location. I think this yields conservative
results (i.e., when it cannot be proven that to pointers may alia
I think every SSA_NAME variable has a:
* ptr_info_def*
* which points to a pt_solution
* which points to a bitmap field vars
and I think this bitmap vars is set with 1 in the UID location of
variables/references that an SSA_NAME variable might point to it.
So, I am just wondering is there an
On 03/09/2020 12:19, Richard Biener wrote:
On Thu, Sep 3, 2020 at 10:58 AM Jakub Jelinek via Gcc wrote:
On Thu, Sep 03, 2020 at 10:22:52AM +0200, Erick Ochoa wrote:
So, I am just wondering is there an interface where I could do something
like:
```
// vars is the field in pt_solution
On 04/09/2020 15:19, Richard Biener wrote:
On Fri, Sep 4, 2020 at 10:13 AM Erick Ochoa
wrote:
On 03/09/2020 12:19, Richard Biener wrote:
On Thu, Sep 3, 2020 at 10:58 AM Jakub Jelinek via Gcc wrote:
On Thu, Sep 03, 2020 at 10:22:52AM +0200, Erick Ochoa wrote:
So, I am just wondering
Hi Gary,
I'm not 100% sure this will fix the problem, but in the past I have had
to call the following function:
/* If dominator info is not available, we need to calculate it. */
if (!dom_info_available_p (CDI_DOMINATORS))
calculate_dominance_info (CDI_DOMINATORS);
Basically dominan
Hi,
I am trying to instrument gimple so that "hello world" is printed after
each call to malloc. I've tried instrumenting using the following code
static void
// G points to the gcall which corresponds to malloc
call_hello_world(gimple* g)
{
gimple_stmt_iterator gsi = gsi_start(g);
// cre
Thanks Richard,
for sake of completeness (and anyone in the future looks for a simple
hello world example), here's what my code roughly looks like:
push_cfun(f); // f is the function who calls malloc
static void
call_hello_world(gimple* g)
{
gimple_stmt_iterator gsi = gsi_start(g);
const
Hi,
I am working on an alias analysis using the points-to information
generated during IPA-PTA. If we look at the varmap varinfo_t array in
gcc/tree-ssa-struct.c, most of the constraint variable info structs
contain a non-null decl field which points to a valid tree in gimple
(which is an SSA
On 25/09/2020 13:30, Richard Biener wrote:
On Fri, Sep 25, 2020 at 9:05 AM Erick Ochoa
wrote:
Hi,
I am working on an alias analysis using the points-to information
generated during IPA-PTA. If we look at the varmap varinfo_t array in
gcc/tree-ssa-struct.c, most of the constraint variable
Hi,
previously I sent an e-mail inquiring about the state of points-to
information of structure variables allocated in the heap. It was brought
to my attention that heap variables do not have a size to model and
therefore IPA-PTA is not able to provide field sensitivity.
I now understand bet
On 28/09/2020 14:25, Erick Ochoa wrote:
Hi,
previously I sent an e-mail inquiring about the state of points-to
information of structure variables allocated in the heap. It was brought
to my attention that heap variables do not have a size to model and
therefore IPA-PTA is not able to
} same as p1.128+64
temp2_34 = { c }
Thanks!
On 28/09/2020 14:30, Erick Ochoa wrote:
On 28/09/2020 14:25, Erick Ochoa wrote:
Hi,
previously I sent an e-mail inquiring about the state of points-to
information of structure variables allocated in the heap. It was
brought to my attention that
Hi,
I am analyzing gimple calls during LTO. I found a gimple call statement
s that has the following properties:
```
tree fndecl = gimple_call_fndecl(s)
gcc_assert(fndecl)
// That is, the gimple call returns a non-null fndecl.
cgraph_node *n = cgraph_node::get(fndecl);
gcc_assert(!n)
// That i
On 13/10/2020 13:37, Richard Biener wrote:
On Tue, Oct 13, 2020 at 1:17 PM Erick Ochoa
wrote:
Hi,
I am analyzing gimple calls during LTO.
What's symtab->state at this point?
The state is IPA_SSA_AFTER_INLINING.
I found a gimple call statement
s that has the following pr
Hello again,
I've been working on several implementations of data layout
optimizations for GCC, and I am again kindly requesting for a review of
the type escape based dead field elimination and field reorg.
Thanks to everyone that has helped me. The main differences between the
previous comm
why
these designs were made.
On 03/11/2020 15:58, Richard Biener wrote:
On Fri, Oct 30, 2020 at 6:44 PM Erick Ochoa
wrote:
Hello again,
I've been working on several implementations of data layout
optimizations for GCC, and I am again kindly requesting for a review of
the type escape b
the visitors.
On 05/11/2020 14:10, Richard Biener wrote:
On Tue, Nov 3, 2020 at 5:21 PM Erick Ochoa
wrote:
Thanks for the review Richard I'll address what I can. I also provide
maybe some hindsight into some of the design decisions here. I'm not
trying to be defensive just hoping to
issue.
After this, I will be removing std data structures and using specific ones.
If anyone have any comments about the transformation, please let me
know. I am happy to answer questions.
-Erick
On 06.11.20 05:51, Erick Ochoa wrote:
Hi Richard,
just some top-level comments before I write about
Hello,
my name is Erick and I am working in a link-time-optimization pass named
ipa-initcall-cp. It is called ipa-initcall-cp because it propagates constant
values written to variables with static lifetimes (such as ones initialized in
initialization functions). ipa-initcall-cp has to be located
Hi,
I am trying to use the function: `cgraph_node::get_untransformed_body` during
the wpa stage of a SIMPLE_IPA_PASS transformation. While the execute function
is running, I need to access the body of a function in order to iterate over
the gimple instructions in the first basic block. I have foun
On 2019-12-04 7:52 a.m., Richard Biener wrote:
> On Tue, Dec 3, 2019 at 11:51 PM Erick Ochoa
> wrote:
>>
>> Hi,
>>
>> I am trying to use the function: `cgraph_node::get_untransformed_body` during
>> the wpa stage of a SIMPLE_IPA_PASS transformation. Whi
Hi, this refers to https://gcc.gnu.org/ml/gcc/2019-11/msg00251.html
On 2019-12-04 6:30 a.m., Martin Liška wrote:
> Hello.
>
> I'm adding the author of IPA CP and LTO subsystem maintainer.
>
> Martin
On 2019-12-06 5:50 a.m., Richard Biener wrote:
> On Wed, Dec 4, 2019 at 6:03 PM Erick Ochoa
> wrote:
>>
>>
>>
>> On 2019-12-04 7:52 a.m., Richard Biener wrote:
>>> On Tue, Dec 3, 2019 at 11:51 PM Erick Ochoa
>>> wrote:
>>>>
>
one_num_suffixes1;
+ delete func_to_clone;
+
+ return 0;
+}
+
+namespace {
+
+const pass_data pass_data_ipa_initcall_cp = {
+ IPA_PASS,
+ "initcall_cp",
+ OPTGROUP_NONE,
+ TV_NONE,
+ (PROP_cfg | PROP_ssa),
+ 0,
+ 0,
+ 0,
+ (TODO_update_ssa | TODO_cleanup_cfg | TODO_dump_symtab
+ | TODO_re
Hello,
I am trying to understand how to store information in object files
during LTO.
Is it possible to write arbitrary data in these sections?
There's not a lot of documentation about the specifics I need in the GCC
Internals.
I have made a simple LTO pass that writes
* "Hello world\n" into an
Hello,
I am working on a struct reorganization optimization pass.
I am able to identify which structs I want to reorganize
and I am also able to create new structs with these modifications.
The way the new structs are generated is the following code
(I am keeping it high-level for conciseness but
Hi,
I'm interested in printing VAR_DECL trees that are of type
RECORD_TYPE. I am using the function print_generic_decl
for debugging and found this interesting behaviour.
When I do initialization of structs using the following
syntax:
```
struct aStruct { _Bool e; int a; char b; float c; double
On 2019-12-18 6:02 a.m., Richard Biener wrote:
> On December 17, 2019 8:31:00 PM GMT+01:00, Erick Ochoa
> wrote:
>> Hi,
>>
>> I'm interested in printing VAR_DECL trees that are of type
>> RECORD_TYPE. I am using the function print_generic_decl
>>
On 2019-12-18 1:33 p.m., Erick Ochoa wrote:
>
>
> On 2019-12-18 6:02 a.m., Richard Biener wrote:
>> On December 17, 2019 8:31:00 PM GMT+01:00, Erick Ochoa
>> wrote:
>>> Hi,
>>>
>>> I'm interested in printing VAR_DECL trees that
Hi,
I'm looking to create new tests for an LTO pass that I'm working on.
So, I started by trying to run the tests under the folder:
$gcc/gcc/testsuite/gcc.dg/lto
Looking at the documentation available here:
https://gcc.gnu.org/install/test.html
It says the following
In order to run sets of t
On 2019-12-19 3:50 p.m., Andrew Pinski wrote:
> On Thu, Dec 19, 2019 at 12:48 PM Erick Ochoa
> wrote:
>>
>> Hi,
>>
>> I'm looking to create new tests for an LTO pass that I'm working on.
>> So, I started by trying to run the tests unde
Hello,
I am working on testing an optimization. I am starting to write
tests in the GCC testing suite. However, I want to develop some
fine grain testing for my own sake.
This optimization I am working on, is a variant of struct reordering.
One way I would like to test my pass is for example, mak
On 2019-12-19 5:01 p.m., Jozef Lawrynowicz wrote:
> On Thu, 19 Dec 2019 16:47:42 -0500
> Erick Ochoa wrote:
>
>> Hello,
>>
>> I am working on testing an optimization. I am starting to write
>> tests in the GCC testing suite. However, I want to develop some
Hi,
I am working on an LTO pass which drops unused fields on structs. On my
tests, I found that the gimple generated for `sizeof` is a constant. For
example, for the following C code:
```
struct astruct_s { _Bool c; _Bool a; _Bool b; };
struct astruct_s astruct;
int
main()
{
int size = sizeof(
On 2019-12-24 2:37 a.m., Richard Biener wrote:
> On December 23, 2019 6:30:31 PM GMT+01:00, Erick Ochoa
> wrote:
>> Hi,
>>
>> I am working on an LTO pass which drops unused fields on structs. On my
>> tests, I found that the gimple generated for `sizeof` is a co
Hi Gary,
the options.c file is generated from the gcc/common.opt file. Report was a
keyword that could be given to optimization options but which was dropped
sometime in December I think. The patches I sent you should have the
keyword Report dropped. Are you applying your sources already? If not,
Hello,
I'm currently working on improving my understanding of the implementation
of the intraprocedural points-to analysis in GCC. I have already read the
papers by Daniel Berlin and have been looking at the source for some time,
but I understand that those references are a little bit old and migh
Hello,
I'm still trying to compare the solution generated from the
intraprocedural points-to analysis in GCC against an external solver.
Yesterday it was pointed out that "NULL is not conservatively
correctly represented in the constraints". Can someone expand on this?
To me this sounds like a co
Hi Richard, I think I misunderstood yesterday's answer and deviated a
little bit. But now I want to focus on this:
> > * the process in GCC that generates the constraints for NULL works
> > fine (i.e., feeding the constraints generated by GCC to an external
> > solver should yield a conservatively
Mm... ignore this for now please, I think I messed up the analysis by
hand. I will try again. Thanks!
On Wed, 17 Mar 2021 at 16:16, Erick Ochoa wrote:
>
> Hi Richard, I think I misunderstood yesterday's answer and deviated a
> little bit. But now I want to focus on this:
>
>
No, I think it is correct. Any help would be clearly appreciated.
Thanks! (Even if I'm wrong, of course I'd like to know.)
On Wed, 17 Mar 2021 at 17:21, Erick Ochoa wrote:
>
> Mm... ignore this for now please, I think I messed up the analysis by
> hand. I will try again. Tha
Perfect, thank you! This is exactly the answer that I was looking for.
On Thu, 18 Mar 2021 at 13:27, Richard Biener wrote:
>
> On Wed, Mar 17, 2021 at 4:17 PM Erick Ochoa wrote:
> >
> > Hi Richard, I think I misunderstood yesterday's answer and deviated a
> >
we see
ESCAPED = { NULL }
Here is the full points-to sets:
computed for foo:
```
ANYTHING = { ANYTHING }
ESCAPED = { NULL }
NONLOCAL = { ESCAPED NONLOCAL }
STOREDANYTHING = { }
INTEGER = { ANYTHING }
ISRA.4 = { NONLOCAL }
derefaddrtmp(9) = { NULL }
foo.constprop.0.isra.0 = { }
```
I think this might have t
Hello,
I already have some experience developing SIMPLE_IPA_PASSes, but I am
looking to understand IPA_PASSes better. I have made a hello world ipa
pass that stores "hello world $FUNCTION_NAME" in the function
summaries; however, I am having trouble reading this information back.
Can someone help
Hello,
just trying again to increase visibility of this question. Many thanks
in advance!
On Fri, 26 Mar 2021 at 13:49, Erick Ochoa wrote:
>
> Hello,
>
> I already have some experience developing SIMPLE_IPA_PASSes, but I am
> looking to understand IPA_PASSes better. I have mad
Hi,
I am looking at the points-to analysis in GCC and I found the
following comment in tree-ssa-structalias.c:
/* Collect field information. */
if (use_field_sensitive
&& var_can_have_subvars (decl)
/* ??? Force us to not use subfields for globals in IPA mode.
Else we'd
> If the global is module local we should initialize it with NULL, yes. If it
> is
> not module local it should be initialized with NONLOCAL (that's both what
> should currently happen correctly - it's needed for non-field-sensitive init
> as well).
>
Awesome, thanks Richard! One more question:
advance!
On Tue, 30 Mar 2021 at 10:18, Erick Ochoa wrote:
>
> Hello,
>
> just trying again to increase visibility of this question. Many thanks
> in advance!
>
>
> On Fri, 26 Mar 2021 at 13:49, Erick Ochoa wrote:
> >
> > Hello,
> >
> > I a
Hi,
just a high level question. I know that IPA-PTA is a SIMPLE_IPA_PASS
and that ideally it would be better as an IPA_PASS. I understand that
one of the biggest challenges of changing IPA-PTA to an IPA_PASS is
that on the current LTO framework, the LTRANS stage can happen at the
same time for mul
>
> I don't think this would remove any problem that is present.
>
I have a problem understanding what you mean here because later on you state:
> Now - the reason you think of is likely that IPA transform will instantiate
> IPA clones and do inlining and transfering the IPA PTA solution to the
>
ing I can do to help.
>From 8e0e2c7d821baab8ac6dbdd6fad590e8332b Mon Sep 17 00:00:00 2001
From: Erick Ochoa
Date: Tue, 6 Apr 2021 16:34:48 +0200
Subject: [PATCH] Simple hello world for IPA_PASS
---
gcc/Makefile.in | 1 +
gcc/common.opt| 4 ++
gcc/ipa-hello-world
Hi,
I am looking for a small clarification. I understand that during late
SIMPLE_IPA_PASSes some statically initialized global variables might
have error_mark_node trees in their DECL_INITIAL field.
I believe that I read something similar in the past about how to get
the tree expressions in these
Hi,
I am having some trouble understanding the semantics of OBJ_TYPE_REF.
I understand that it is made of three operands:
1. OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use.
2. OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is
being performed
3. OBJ_TYPE_REF_TOKEN:
Cool, thanks! I think I understand now.
On Tue, 22 Jun 2021 at 23:58, Martin Jambor wrote:
>
> Hi,
>
> On Fri, Jun 18 2021, Erick Ochoa via Gcc wrote:
> > Hi,
> >
> > I am having some trouble understanding the semantics of OBJ_TYPE_REF.
> > I understa
Hello,
I know that some BUILT_IN functions are treated in a special way by
the points-to analysis. Those functions are those that take pointers
as arguments or return them but do not change their points-to set and
similar cases. (E.g. strcpy returns a pointer to the same object as
their first argu
> I guess that to assume otherwise, one would have to make sure the
> pointer does not correspond to a "%n" (or similar, perhaps even future)
> conversion specifier.
>
Oh, wow, I didn't know about the %n specifier.
Thanks Martin!
1 - 100 of 152 matches
Mail list logo