Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Ordering not assigned to DAG Nodes create after DAG builder"
2013 Mar 27
0
[LLVMdev] Ordering not assigned to DAG Nodes create after DAG builder
Hi Xiaoyi,
Do you still see this behavior after r177525? I recently fixed several
places where ordering was not propagated, including during legalization.
There are probably still cases that are missed, but I'd be interested in
seeing a missed case. I'm guessing it's a legalization that expands to
multiple new nodes. The AssignOrdering calls in the legalizer may need to
be expanded
2013 Apr 30
2
[LLVMdev] [PATCH] Propagate DAG node ordering during legalization and instruction selection
Hi Eric,
Sorry I wasn't clear. The problem happened in the "source" pre-RA scheduler, which relies on DAG node ordering to schedule the nodes.
Xiaoyi
From: Eric Christopher [mailto:echristo at gmail.com]
Sent: Tuesday, April 30, 2013 12:54 AM
To: Guo, Xiaoyi
Cc: LLVM Developers Mailing List
Subject: Re: [LLVMdev] [PATCH] Propagate DAG node ordering during legalization and
2013 Apr 30
0
[LLVMdev] [PATCH] Propagate DAG node ordering during legalization and instruction selection
On Apr 30, 2013, at 11:00 AM, "Guo, Xiaoyi" <Xiaoyi.Guo at amd.com> wrote:
> Hi Eric,
>
> Sorry I wasn’t clear. The problem happened in the “source” pre-RA scheduler, which relies on DAG node ordering to schedule the nodes.
In your case, Eric's suggestion was effectively "start implementing fast-isel". Which is not a bad idea if you want to reduce compile
2013 Apr 30
0
[LLVMdev] [PATCH] Propagate DAG node ordering during legalization and instruction selection
On Tue, Apr 30, 2013 at 12:48 AM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> Hi,****
>
> ** **
>
> We’ve recently encountered a problem in our compiler where the line number
> in debug info jumps back and force even at O0. This is caused by DAG node
> ordering not being properly kept during legalization and instruction
> selection. There are still uncaught cases
2013 Apr 29
3
[LLVMdev] [PATCH] Propagate DAG node ordering during legalization and instruction selection
Hi,
We've recently encountered a problem in our compiler where the line number in debug info jumps back and force even at O0. This is caused by DAG node ordering not being properly kept during legalization and instruction selection. There are still uncaught cases after applying the patch mentioned here.
So I have decided to implement the approach suggested by Andy as below. i.e. maintain the
2012 Nov 06
4
[LLVMdev] FW: Bug in SelectionDAG visitTargetIntrinsic
From: Villmow, Micah
Sent: Tuesday, November 06, 2012 1:37 PM
To: 'llvm-dev at cs.uiuc.edu'
Cc: Guo, Xiaoyi
Subject: Bug in SelectionDAG visitTargetIntrinsic
We ran into a problem where specifying IntrNoMem was causing our instruction selection to fail with target specific intrinsics. After looking into the code and ISel debug it looks like tablegen and SelectionDAG are using different
2012 Nov 06
0
[LLVMdev] Bug in SelectionDAG visitTargetIntrinsic
void SelectionDAGBuilder::visitTargetIntrinsic(const CallInst &I,
- unsigned Intrinsic) {
- bool HasChain = !I.doesNotAccessMemory();
- bool OnlyLoad = HasChain && I.onlyReadsMemory();
+ unsigned Intrinsic) {
+ // Info is set by getTgtMemInstrinsic
+ TargetLowering::IntrinsicInfo Info;
+ bool
2013 Jun 13
2
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
On Wed, Jun 12, 2013 at 7:28 PM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> So fence only forces ordering of atomic instructions.****
>
> ** **
>
> Let me change my question then.****
>
> ** **
>
> If I have a target-specific intrinsic which forces ordering of ordinary
> load/store instructions. Then should it also force ordering of load/stores
> to
2013 Jun 13
2
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
On Thu, Jun 13, 2013 at 10:52 AM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> I mean something like a target-specific fence machine instruction which
> forces ordering of all loads/stores. I want to clarify the meaning of
> “noalias” in this case. Is the fence machine instruction considered
> “touching” all memory and thus breaks the “noalias” contract?
>
A fence
2013 Jun 13
2
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
On Wed, Jun 12, 2013 at 6:17 PM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> Hi,
>
> I have the following test case:
>
> define void @foo(<2 x float>* noalias nocapture %out, <2 x float>*
> noalias nocapture %data0) nounwind {
> entry:
> %val1 = load <2 x float>* %data0, align 8
> store <2 x float> %val1, <2 x float>* %out,
2013 Jul 29
2
[LLVMdev] creating SCEV taking too long
On Mon, Jul 29, 2013 at 4:08 PM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> Hi,****
>
> ** **
>
> We have a benchmark where there are 128 MAD computations in a loop. (See
> the attached IR.) Creating SCEVs for these expressions takes a long time,
> making the compile time too long. E.g., running opt with the “indvars” pass
> only takes 45 seconds.****
>
>
2013 Jul 30
4
[LLVMdev] creating SCEV taking too long
On Jul 29, 2013, at 4:08 PM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> Hi,
>
> We have a benchmark where there are 128 MAD computations in a loop. (See the attached IR.) Creating SCEVs for these expressions takes a long time, making the compile time too long. E.g., running opt with the “indvars” pass only takes 45 seconds.
>
> It seems that the majority of the time is
2013 Jun 13
1
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
On Thu, Jun 13, 2013 at 11:39 AM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:
> In a multi-threaded environment, in order to ensure the memory ordering
> expressed by the memory fence, certain memory operations should not be
> moved across the fence, right?****
>
> **
>
Yes, but operations on noalias pointers don't fall into that category. For
noalias pointers, while
2013 Jul 30
0
[LLVMdev] creating SCEV taking too long
Hi Andy,
Thanks very much for looking into the problem.
In this particular test case, it seems most of the time is spent in the sorting, not the grouping.
Later, I realized that it seems in this test case most of the expressions to be compared have different length. I tried the following change in compare() when the LHS and RHS's types are the same:
2013 Aug 06
2
[LLVMdev] Add a new llvm intrinsic?
Hi,
In OpenCL, the "barrier()" function, as well as various target specific memory fence intrinsics, should prevent loads/stores of the relevant address space from being moved across them.
Kernel pointers with "restrict" attributes are implemented by marking the pointer "noalias" in the LLVMIR. However, in LLVM, "noalias" pointers are not affected by llvm
2013 Jul 29
0
[LLVMdev] creating SCEV taking too long
Hi,
We have a benchmark where there are 128 MAD computations in a loop. (See the attached IR.) Creating SCEVs for these expressions takes a long time, making the compile time too long. E.g., running opt with the "indvars" pass only takes 45 seconds.
It seems that the majority of the time is spent in comparing the complexity of the expression operands to sort them.
I realize that the
2011 Sep 15
2
[LLVMdev] llvm compilation error on TOT
I just updated from the most recent svn ToT. I'm now getting the following compilation errors. Looks like DIIContext.h needs some includes. Does anyone else see this error also? Am I missing something?
In file included from DIContext.cpp:10:
/extra/xguo/workspace/llvm/include/llvm/DebugInfo/DIContext.h:27: error: 'uint32_t' does not name a type
2013 Aug 07
2
[LLVMdev] Add a new llvm intrinsic?
Chandler pointed out another interpretation of C11/6.7.3.1, in which
'restrict' only addresses aliasing within a single thread. If that's
the right interpretation, then it's a bug in LLVM that it moves
noalias pointers across memory-ordering operations at all, and you
still don't need a new fence, just a bug fix.
6.7.3.1 says "During each execution of B, ...".
2013 Jun 13
0
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
I mean something like a target-specific fence machine instruction which forces ordering of all loads/stores. I want to clarify the meaning of "noalias" in this case. Is the fence machine instruction considered "touching" all memory and thus breaks the "noalias" contract?
Xiaoyi
From: Eli Friedman [mailto:eli.friedman at gmail.com]
Sent: Wednesday, June 12, 2013 8:08
2013 Jun 13
0
[LLVMdev] A question w.r.t fence instruction vs. noalias pointer
So fence only forces ordering of atomic instructions.
Let me change my question then.
If I have a target-specific intrinsic which forces ordering of ordinary load/store instructions. Then should it also force ordering of load/stores to noalias pointers in caller functions?
Thanks,
Xiaoyi
From: Eli Friedman [mailto:eli.friedman at gmail.com]
Sent: Wednesday, June 12, 2013 7:06 PM
To: Guo,