Displaying 20 results from an estimated 2000 matches similar to: "Deterministic function return attribute"
2020 Aug 14
2
Fwd: Deterministic function return attribute
Hi László,
On 8/13/20 5:21 PM, László Radnai via llvm-dev wrote:
> (Sorry I clicked reply instead of reply to all)
> I'm fighting with my email client, I hope the quoted text contains
> what I want it to contain.
>
> ---------- Forwarded message ----------
> From: László Radnai <radlaci97 at gmail.com>
> Date: Fri, 14 Aug 2020 00:11:35 +0200
> Subject:
2020 Sep 14
3
Mem2reg: load before single store
Hi all!
While playing with LLVM, I've found a weird behavior in mem2reg pass.
When optimizing single stores, undefined value is placed before any load
preceding the store (based on basicblock's ordering and simple dominator
analysis, if I remember correctly).
This is the line that is responsible for the behavior: (LLVM9 does the same)
2020 Sep 14
2
Mem2reg: load before single store
On 9/14/20 9:30 AM, James Y Knight via llvm-dev wrote:
> On Mon, Sep 14, 2020 at 3:19 AM László Radnai via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> A problem arises, and I am not sure if it is really a problem or just
>> weird C-compliant behavior.
>>
>> int a; // or, equally, int a=0;
>>
>> int main(){
>> int b;
>> if
2013 Jul 25
3
[LLVMdev] Does nounwind have semantics?
A patch is attached.
Not sure I'm happy with this due to the aforementioned orthogonality concerns, but I really don't have any better ideas. If anyone does, feel free to offer them, I don't mind throwing this patch into the trash.
(Also, not happy with the name, using "speculatable" as Nick suggested, for the lack of other options. If the name stays I'll add it to the
2015 Dec 04
2
RFC: New function attribute HasInaccessibleState
I'd like to suggest a different direction which should accomplish similar
ends.
I think it would make sense to introduce an attribute: csecandidate.
If we see a call-site "X" marked as csecandidate, it would imply that it
can be replaced with any other call-site "Y" with the same arguments which
dominate the call-site at "X".
However, there are some cases that
2013 Jul 25
0
[LLVMdev] Does nounwind have semantics?
Kuperstein, Michael M wrote:
> A patch is attached.
+ const CallInst* CI = dyn_cast<CallInst>(Inst);
+ return CI->isSafeToSpeculativelyExecute();
"return cast<CallInst>(Inst)->isSafeToSpeculativelyExecute();"?
Use cast<> instead of dyn_cast<>. See
http://llvm.org/docs/ProgrammersManual.html#isa . Then I don't think it
needs to be two lines.
2013 Jul 22
2
[LLVMdev] Does nounwind have semantics?
Of course frontends are free to put attributes, but it would be nice if optimizations actually used them. ;-)
My use case is that of proprietary frontend that happens to know some library function calls - which are only resolved at link time - have no side effects and are safe to execute speculatively, and wants to tell the optimizer it can move them around however it likes. I'll gladly submit
2020 Jul 16
2
LLVM 11 and trunk selecting 4 wide instead of 8 wide loop vectorization for AVX-enabled target
Hey list,
I've recently done the first test run of bumping our Burst compiler from
LLVM 10 -> 11 now that the branch has been cut, and have noticed an
apparent loop vectorization codegen regression for X86 with AVX or AVX2
enabled. The following IR example is vectorized to 4 wide with LLVM 11 and
trunk whereas in LLVM 10 it (correctly as per what we want) vectorized it 8
wide matching the
2013 Jul 22
0
[LLVMdev] Does nounwind have semantics?
On 22 July 2013 01:11, Kuperstein, Michael M <michael.m.kuperstein at intel.com
> wrote:
> Of course frontends are free to put attributes, but it would be nice if
> optimizations actually used them. ;-)
> My use case is that of proprietary frontend that happens to know some
> library function calls - which are only resolved at link time - have no
> side effects and are safe
2013 Aug 27
1
R Language Newbie
Hi,
set.seed(29)
myVector<- rnorm(100)
?seq(1,100,by=2)
# [1]? 1? 3? 5? 7? 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49
#[26] 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
myVector[seq(1,100,by=2)]
rev(myVector)
?sum(myVector>0)
#[1] 46
#or
?table(myVector>0)
#
#FALSE? TRUE
?#? 54??? 46
A.K.
Hey guys, this is my first week
2020 Jul 16
2
LLVM 11 and trunk selecting 4 wide instead of 8 wide loop vectorization for AVX-enabled target
Tried a bunch of them there (x86-64, haswell, znver2) and they all
defaulted to 4-wide - haswell additionally caused some extra loop unrolling
but still with 8-wide pows.
Cheers,
-Neil.
On Thu, Jul 16, 2020 at 2:39 PM Roman Lebedev <lebedev.ri at gmail.com> wrote:
> Did you specify the target CPU the code should be optimized for?
> For clang that is -march=native/znver2/... /
2016 Feb 25
0
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
Hal Finkel wrote:
> But it is not all optimizations that are the problem. Rather, it
> seems like a select few (e.g. things involving collapsing allowed
> non-determinism in atomics), and losing those optimizations seems
> better than generally losing function-attribute deduction.
If we go by the langref, then optimizations that fold undef are also
problematic (though most C/C++
2020 Jul 19
2
Instrument intrinsic invalid
Hi, I try to use llvm-dis to disassemble the result after opt, my pass will add a intrinsic after the load instruction, like following:
bool fpscan::ldAddMetadata (Instruction *Inst, StringRef c) {
std::vector<Metadata *> dataTuples;
// Add metadata in list
dataTuples.push_back(MDString::get(Inst->getContext(), c));
MDNode* N = MDNode::get(Inst->getContext(),
2020 Jul 16
4
LLVM 11 and trunk selecting 4 wide instead of 8 wide loop vectorization for AVX-enabled target
So for us we use SLEEF to actually implement the libcalls (LLVM intrinsics)
that LLVM by default would generate - and since SLEEF has highly optimal
8-wide pow, optimized for AVX and AVX2, we really want to use that.
So we would not see 4/8 libcalls and instead see 1 call to something that
lights up the ymm registers. I guess the problem then is that the default
expectation is that pow would be
2016 Feb 25
3
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
----- Original Message -----
> From: "Chandler Carruth" <chandlerc at google.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "llvm-dev" <llvm-dev at lists.llvm.org>, "Philip Reames"
> <listmail at philipreames.com>, "Duncan P. N. Exon Smith"
> <dexonsmith at apple.com>, "Sanjoy Das"
>
2008 Apr 18
5
show sum of textboxes
Hi all,
I have multiple textboxes containing numbers. I want to add up all the
numbers and show the sum. Can I select the textboxes by class and sum
the content?
This also has to happen realtime: when a number is changed ina textbox
the sum should also change.
can this be done?
regards,
Stijn
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are
2013 Nov 01
0
[LLVMdev] Add a 'notrap' function attribute?
FYI, see also the previous discussion about "speculatable":
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064426.html
I think such an attribute should be added.
In the thread which lead up to that thread, I proposed using more
fine-grained attributes and Michael rightly pointed out the problem with
that: you'd need one for every possible form of undefined behaviour. You
2006 Apr 14
2
spot the error (I can''t, I''m new)
I have a form that I want to use to update multiple
objects. In the controller,
@grades = Grade.find(params[:grade].keys)
@grades.each_with_index do |grade, i|
grade.update_attribute(params[:grade][i])
end
all_valid = @grades.inject(true) {|memo, c|
c.valid? && memo }
this doesn''t update the attributes as I would expect.
(I would just use
2017 Sep 16
2
assertion triggered since update to llvm 5
When zig updated to llvm 5 we started hitting this assertion:
zig:
/home/andy/downloads/llvm-project/llvm/include/llvm/Support/Casting.h:106:
static bool llvm::isa_impl_cl<To, const From*>::doit(const From*) [with To
= llvm::Instruction; From = llvm::Value]: Assertion `Val && "isa<> used on
a null pointer"' failed.
I wonder if however this was caused by an
2013 Jul 31
1
[LLVMdev] [Proposal] Speculative execution of function calls
On 31 July 2013 11:56, David Chisnall <David.Chisnall at cl.cam.ac.uk> wrote:
> The slightly orthogonal question to safety is the cost of execution. For
> most intrinsics that represent CPU instructions, executing them
> speculatively is cheaper than a conditional jump, but this is not the case
> for all (for example, some forms of divide instructions on in-order RISC
>