Displaying 20 results from an estimated 11000 matches similar to: "Is clang+llvm deterministisc?"
2017 Jul 17
2
Is clang+llvm deterministisc?
I searched source code of LLVM/Clang 4.0.0 for 'random_seed' with grep. It seems the -frandom-seed option is not supported.
The -rng-seed option appears to be defined in ./lib/Support/RandomNumberGenerator.cpp, which is source code for class RandomNumberGenerator. The constructor of class RandomNumberGenerator is private and is only called by Module::createRNG (defined in
2017 Aug 03
2
Re-computing Live-in/Live-out Physical Registers for Basic Blocks Using LivePhysRegs
Thank you for your reply!
If liveness of APSR is not tracked, how does the code generator determine whether instructions like cmp are dead code or not?
Is it true that, for every use of APSR (such as a conditional branch), the used def (such as cmp, add, etc.) is always in the same basic block?
Is it true that APSR is never assumed to live across basic block boundaries?
Thank you!
Ming Zhang
2020 Jan 24
3
Module::createRNG() and new PassManager
Correct me if I'm wrong, but is Module::CreateRNG(Pass *) unusable with
the new PassManager? Since each pass is defined as a
llvm::PassInfoMixIn<DerivedT> instead of inheriting from llvm::Pass, it
doesn't seem possible to obtain the underlying llvm::Pass * from e.g.
llvm::ModuleAnalysisManager. Would it make sense to change the
definition/implementation to Module::CreateRNG(StringRef
2018 Jan 25
3
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
Yes, all that is correct.
My question is more a long term question: why do the .ll printer specify
the alignment if it is equivalent to the default one?
That is, it seems the sed script expect the printer to not specify it (this
would match the load/store behavior), but the ll-printer does specify it,
which either means the printer is not ideal on this case and I should fix
it, or in this case
2010 Nov 12
3
[LLVMdev] Non-deterministic builds
Yes, this is controlled by the -frandom-seed flag. Sadly, it is expected behavior.
-Chris
On Nov 12, 2010, at 7:10 AM, Sebastian Redl <sebastian.redl at getdesigned.at> wrote:
> On 12.11.2010 15:26, Erik Cederstrand wrote:
>> I have noticed that two consecutive builds of clang, clang++ and tblgen don't produce identical binaries (as in md5 sums) on identical source code
2012 Nov 06
1
Filling dataframe incorrectly in for loop
Hi everyone,
I am writing a simple script to read in a data file, search through the data
file for an exact character match for a microRNA name, subset those rows,
and aggregrate a dataframe with those subselections all in a for loop. This
is what I have so far:
#READ IN DATA
file1 = "C:/Desktop/mirtarget2_predictions.txt"
data = read.table(file1, header=FALSE, sep="\t")
2020 Apr 17
4
[RFC] Improving FileCheck
On Mon, Apr 13, 2020 at 1:16 PM Jon Roelofs via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> As an update, after lots of fixes from a number of different people
> (thanks everyone!), the current list of false-positives on `ninja
> check-llvm` for the more stringent Gotcha A diagnostic is:
>
> LLVM :: Analysis/CostModel/X86/vselect-cost.ll
> LLVM ::
2018 Jan 25
0
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
Good question. AFAIK, the IR-printer doesn’t understand the semantics of parameter attributes. In this case, it only knows that there is an attribute on the parameter that is integer valued (with value 1) and that has the name “align”, so it prints it out. If we don’t want it printing out ‘align 1’ then it’s up to us to not set the alignment parameter attribute to a value if that value would be 1.
2017 Nov 11
2
Update control flow graph when splitting a machine basic block?
> The right way to update the CFG very much depends on how you're
> transforming it.
I would like to export the CFG for control flow checking.
Theoretically, it should be possible for a compiler to know every target of every control flow instruction, except for computed targets that are not known at compile-time.
When a machine basic block is split between two branches, as shown below:
2010 Nov 12
0
[LLVMdev] Non-deterministic builds
Oh, I should point out that using randomness is the unfortunate part, but you can get deterministic builds by passing -frandom-seed=0 to clang and/or gcc.
-Chris
On Nov 12, 2010, at 9:19 AM, Chris Lattner wrote:
> Yes, this is controlled by the -frandom-seed flag. Sadly, it is expected behavior.
>
> -Chris
>
> On Nov 12, 2010, at 7:10 AM, Sebastian Redl <sebastian.redl at
2013 Sep 19
2
[LLVMdev] Adding diversity for security (and testing)
Thanks for all the feedback! It seems there is some interest, so I thought I'd try to summarize discussions so far, and provide patches for closer inspection. I'm not sure if patches should end up here or on a different list in this instance, so if I should instead send this to a different list, I'm happy to do so.
- Is diversity needed, or are existing protections sufficient? As
2010 Nov 14
2
[LLVMdev] Non-deterministic builds
Den 12/11/2010 kl. 18.48 skrev Chris Lattner:
> Oh, I should point out that using randomness is the unfortunate part, but you can get deterministic builds by passing -frandom-seed=0 to clang and/or gcc.
I'll try that. I assume that the randomness has a purpose, so what are the negative implications of setting -frandom-seed=0? Will i still have a functioning compiler? :-)
Thanks,
Erik
2018 Jan 25
2
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
Thanks, that worked like a charm except for the following:
llvm generate:
call void @llvm.memcpy.p3i8.p1i8.i64(i8 addrspace(3)* align 1 bitcast
([512 x float] addrspace(3)* @a_scratchpad to i8 addrspace(3)*), i8
addrspace(1)* align 1 %0, i64 2048, i1 false)
And we expected:
call void @llvm.memcpy.p3i8.p1i8.i64(i8 addrspace(3)* bitcast ([512 x
float] addrspace(3)* [[SPM0]] to i8
2016 Sep 06
5
Recommended computer resources to build llvm
And again...
LLVM_BUILD_LLVM_DYLIB:BOOL=ON
LLVM_LINK_LLVM_DYLIB:BOOL=ON
This one is the good one... maybe.
On Tue, Sep 6, 2016 at 11:35 PM, Alexandre Isoard <
alexandre.isoard at gmail.com> wrote:
> That is because I mistyped it:
> LLVM_ENABLE_LLVM_DYLIB:BOOL=ON
> LLVM_LINK_LLVM_DYLIB:BOOL=ON
>
> On Tue, Sep 6, 2016 at 11:31 PM, Wink Saville <wink at saville.com>
2017 Nov 11
2
Update control flow graph when splitting a machine basic block?
Thank you for your reply!
> Every MachineBasicBlock has a list of successors; you can access it with
> the successors() accessor. That's what you should be using for any CFG
> analysis.
I am aware of these methods of class MachineBasicBlock, which allows one to access a MachineBasicBlock's successors and predecessors in the CFG.
But the CFG itself may no longer be valid if a
2017 Jul 25
2
Are SCEV normal form?
Hello,
I assumed SCEV purpose was to be a normal form, but then I wondered which
one of those is the normal form:
(zext i16 (trunc i32 %a to i16) to i32)
vs
(-((%a /u 65536) *u 65536) + %a)
The first one is nice for interval analysis, and known bit analysis.
The second one is nice when plugged into gep of 2d arrays.
--
*Alexandre Isoard*
-------------- next part --------------
An HTML
2017 Jul 21
2
[SPIR/PTX] Divergence analysis for BasicBlocks
Hello,
Yes? Where is allActive defined, I couldn't find it.
Basically, a BB is control divergent if it's execution depends on a branch
that itself depends on a divergent ssa value.
On Fri, Jul 21, 2017 at 4:13 PM, Zaks, Ayal <ayal.zaks at intel.com> wrote:
> What would be the definition of “isControlDivergent(BasicBlock*)”; the
> complementary of “allActive(BasicBlock*)” –
2017 Jul 05
3
trunc nsw/nuw?
On 07/05/2017 03:10 PM, Alexandre Isoard wrote:
> Ah, ok. I read it wrong. In *neither* case it is UB.
>
> Hum, can an implementation define it as UB? :-)
Nope :-)
The only case I've thought of where we could add these for C++ would be
on conversions to (most) enums (because they used signed underlying
types and the out-of-bounds mapping won't generally be one of the
allowed
2016 Sep 06
2
Recommended computer resources to build llvm
On Tue, Sep 6, 2016 at 3:05 PM, Alexandre Isoard
<alexandre.isoard at gmail.com> wrote:
> LLVM_ENABLE_DYLIB
Where/when/how do you specify LLVM_ENABLE_DYLIB and LLVM_LINK_DYLIB?
I tried the following on the cmake command line:
$ cmake -G Ninja .. -DCMAKE_INSTALL_PREFIX=/home/wink/opt/llvm
-DLLVM_ENABLE_DYLIB=true -DLLVM_LINK_DYLIB=true
And got:
...
-- Performing Test
2018 Jan 25
0
[PATCH] D41675: Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1)
Hi Alexandre,
Before the change you would have been expecting one of the following, correct?
a) call void @llvm.memcpy.p3i8.p1i8.i64(i8 addrspace(3)* bitcast ([512 x float] addrspace(3)* [[SPM0]] to i8 addrspace(3)*), i8 addrspace(1)* [[APTR]], i64 2048, i32 0, i1 false)
b) call void @llvm.memcpy.p3i8.p1i8.i64(i8 addrspace(3)* bitcast ([512 x float] addrspace(3)* [[SPM0]] to i8 addrspace(3)*), i8