Re: [PATCH] Give the constant pseudo value a size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 14, 2017 at 1:11 PM, Dibyendu Majumdar
<mobile@xxxxxxxxxxxxxxx> wrote:
> I assume that you have not yet applied this approach to Sparse-LLVM
> and tested that it works for var arg calls? I would suggest completing
> the changes so that it can be tested thoroughly.

No. this is just one night's hack to make the plumbing part work.
Provide a size for the VALUE pseudo. I haven't have a chance to
integrate into sparse-llvm.

> The push approach has the benefit that it makes clear what arguments
> are being passed in a call. Previously this information was not
> revealed in the Sparse linearized dump. It would be a shame to lose
> that information - perhaps you could still dump the arguments along
> with a call?

Are you sure?
Here is what I have for RC5:
./test-linearize cse.c

.L414:
load.64     %r1052 <- 0[insn]
call.64     %r1053 <- try_to_cse, %arg1, %r1044(last), %r1052
store.64    %r1053 -> 0[insn]
phisrc.64   %phi474 <- %r1053
br          .L413

You can see exactly what is the calling arguments. There is an pseudo_list
for the arguments.

struct /* call */ {
pseudo_t func;
struct pseudo_list *arguments; <==============
struct symbol *fntype;
};


The only thing you want, which is not there is the VALUE pseudo_size.
I add that in this patch.

I haven't take a deep look into the push instruction patch yet. I image this is
less impact on the IR and get the job done. With less redundant information
in the IR. The instruction stream is more compact as well.


Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux