Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] CodeExtractor is not aware of debugger debugger intrinsics"
2013 Nov 21
2
[LLVMdev] CodeExtractor status?
Hi Pablo,
Your tool sounds really cool. It goes well beyond what I’m trying to do, which is really just extracting blocks of code, serializing and sending the inputs over to another core, running the code over there, and then sending the outputs back to the original caller (like an automatic RPC). So it sounds like most of the things your tool can do would be overkill for my use case.
What I’ve
2012 Nov 14
0
[LLVMdev] CodeExtractor doesn't work with debugging metadata
Hi,
I've been experimenting with the CodeExtractor class and have been running into a problem where the verifier pass fails with the error "function-local metadata used in wrong function" when I compile with debugging symbols enabled (-g flag). The issue seems to be that after extraction we have metadata that references variables that aren't allocated in the extracted function.
2010 Jan 10
1
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Fri, Jan 08, 2010 at 05:04:17PM -0800, Chris Lattner wrote:
> On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote:
> >Hello,
> >
> >The CodeExtractor contains a std::set<BasicBlock*> to keep track
> >of the
> >blocks to extract. Iterators on this set are not deterministic, and so
> >the functions that are generated are not (the order of the
>
2010 Jan 09
2
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
Hello,
The CodeExtractor contains a std::set<BasicBlock*> to keep track of the
blocks to extract. Iterators on this set are not deterministic, and so
the functions that are generated are not (the order of the
inputs/outputs can change).
The attached patch uses a SetVector instead. Ok to apply ?
Thanks,
Julien
--
Julien Lerouge
PGP Key Id: 0xB1964A62
PGP Fingerprint: 392D 4BAD DB8B CE7F
2013 Dec 13
2
[LLVMdev] unconditional branch folding
Hello guys,
Do we have a pass to do unconditional branch folding except the one in
Codegen? I checked in the lib/Transforms/Scalar, did not see any
promising one.
thank you,
yuanfang
2013 Nov 18
2
[LLVMdev] CodeExtractor status?
I am working on a pass to extract small regions of code to run somewhere else (different node in a cluster). Basically what I need is the ability to isolate a region of code, get its inputs and outputs, create a new function with the extracted code and code aggregating the in and out parameters as structs that can be cast for a “void*”-based interface.
It looks like the CodeExtractor
2010 Jan 09
0
[LLVMdev] [PATCH] Fix nondeterministic behaviour in the CodeExtractor
On Jan 8, 2010, at 5:01 PM, Julien Lerouge wrote:
> Hello,
>
> The CodeExtractor contains a std::set<BasicBlock*> to keep track of
> the
> blocks to extract. Iterators on this set are not deterministic, and so
> the functions that are generated are not (the order of the
> inputs/outputs can change).
>
> The attached patch uses a SetVector instead. Ok to apply ?
2013 Nov 21
0
[LLVMdev] CodeExtractor status?
On 18/11/13 21:43, Brandon Holt wrote:
> I am working on a pass to extract small regions of code to run
> somewhere else (different node in a cluster). Basically what I need is
> the ability to isolate a region of code, get its inputs and outputs,
> create a new function with the extracted code and code aggregating the
> in and out parameters as structs that can be cast for a
2014 Jan 24
2
[LLVMdev] byval attr for base+range parameters
Hello guys,
For single scalar pointer parameter, we have 'byval' to specify the
pointee is not changed. But for base+range parameters like:
declare void @_gfortran_transfer_integer_write(%struct.__st_parameter_dt*,
i8*, i32)
(This is the fortran runtime api to 'printf' one integer) The 2nd &
3rd args are used to specify the memory of that integer. I didn't find
a
2008 Nov 20
0
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
On Nov 19, 2008, at 7:41 AM, Jack Tzu-Han Hung wrote:
> Hi,
>
> I found a problem in CodeExtractor::severSplitPHINodes()
> <CodeExtractor.cpp>.
>
> The algorithm first separates the header block into two, one
> containing only PHI nodes and the other containing the remaining non-
> PHI nodes. The variable NewBB holds the pointer to the latter half
> block.
2008 Nov 20
1
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
Hi Devang,
Thanks for your reply.
But if you look at the comment of BasicBlock::splitBasicBlock(), it says
that "...an unconditional branch is added to the new BB, and the rest of the
instructions in the BB are moved to the newBB, including the old
terminator."
So, the terminator of the newBB is exactly the same as the terminator of the
oldBB. IF the oldBB has multiple successors,
2008 Nov 19
2
[LLVMdev] Problem in CodeExtractor::severSplitPHINodes()
Hi,
I found a problem in CodeExtractor::severSplitPHINodes()
<CodeExtractor.cpp>.
The algorithm first separates the header block into two, one containing only
PHI nodes and the other containing the remaining non-PHI nodes. The variable
NewBB holds the pointer to the latter half block. Later, it tries to update
DT information.
if (DT)
DT->splitBlock(NewBB);
In splitBlock, it checks
2011 Jan 03
0
[LLVMdev] CodeExtractor.cpp potential bug?
On Dec 31, 2010, at 11:20 AM, Vu Le wrote:
> There might be a misuse of DominatorTree::splitBasicBlock in CodeExtractor.cpp, line 145.
> Header is splited into two (OldPred->NewBB).
>
> Line 145 updates the dominator tree by calling DT->splitBasicBlock(NewBB).
> I think it should be DT->splitBasicBlock(OldPred).
>
> When I tried to extract a code region whose
2020 Jul 14
4
[RFC] Introducing classes for the codegen driven by new pass manager
I'd just note that not every pass you can run with "opt" is actually part
of the optimization pipeline. There are a few important IR-level passes
that only run in the codegen pipeline, but are still nameable with opt to
run individually for testing purposes. Switching over doesn't need to block
on these passes being migrated. So I'm not sure this method of determining
2013 Mar 03
0
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Wei Dang
> Subject: [LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> In the implementation of serverSplitPHINodes(), why it only checks the
> first PHI node for possible multiple inputs from outside the region to
> extract. There could be more than one PHI nodes in
2020 Jul 21
3
[RFC] Introducing classes for the codegen driven by new pass manager
One thing I want to mention. I believe in the current legacy pass manager
implementation only one MachineFunction ever exists at a time. It is
deleted before the next MachineFunction is created. This is very
important for memory usage. I think the MachineOutliner being in the
pipeline may create an exception to this. I think the initial version of
retpoline used a ModulePass and that had to be
2011 Jan 24
0
[LLVMdev] CodeExtractor.cpp potential bug?
I forgot to cc llvmdev.
Here is my original message.
I'm a bit confused on DominatorTreeBase::Split() (
http://llvm.org/docs/doxygen/html/Dominators_8h_source.html#l00229)
If a basic block A splits into A->B, when I call Split(), which is NewBB? A
or B?
The semantics shows that NewBB is the newly split basic block B.
But the assertion at line 229 doesn't seem right.
00229
2012 May 02
0
[LLVMdev] Taking over work on CodeExtractor, spiffing it up, and making it nice & easy to use
Dear Chandler,
> Please let me know if you have out-of-tree users of this logic
At KernelGen we have an out-of-tree variation of CodeExractor called
BranchedCodeExractor [1], which instead of taking a code region into a new
function, does it conditionally:
ORIGINAL_CODE;
->>
if (extracted_code_function(args) != -1)
{
ORIGINAL_CODE;
}
I think many hybrid and parallelizing tools
2013 Mar 03
0
[LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> From: Wei Dang [mailto:jacdang at gmail.com]
> Subject: Re: [LLVMdev] Question about method CodeExtractor::severSplitPHINodes
> Please excuse me if I'm not supposed to reply to all.
You should do reply-all, to make sure the list sees all of the thread.
> Are you saying all PHI nodes are required to include all its predecessor blocks
> no matter they have input or not?
2020 Jul 16
2
[RFC] Introducing classes for the codegen driven by new pass manager
On Wed, Jul 15, 2020 at 6:39 PM Chen, Yuanfang via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> Indeed, but there is a distinction about their position in the pipeline. We run opt & codegen pipeline separately,
Why, though? Is there a reason why this inherently makes sense, or is
it just a historical accident? At least to me it seems that it would
make more sense to run all passes