Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] Understanding SelectionDAG construction"
2011 Jun 06
0
[LLVMdev] Understanding SelectionDAG construction
Hi Ankur,
> The flags "-view-sched-dags".. described in the doc doesn't seem to work. (
> "llc -help" doesn't list it ).
as far as I remember, displaying DAGs during compilation is only enabled
in "debug builds" [1] of LLVM. You probably have to re-configure and
re-compile LLVM to enable this feature.
Best regards,
Christoph
[1]
2010 Jul 20
2
[LLVMdev] MC-JIT
New patch taking Eli's comments into account.
Olivier.
On Tue, Jul 20, 2010 at 11:09 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Tue, Jul 20, 2010 at 1:36 PM, Olivier Meurant
> <meurant.olivier at gmail.com> wrote:
>>> Seems reasonable, but I haven't looked at the code yet. I would
>>> suggest trying to split your work up into separate
2010 Jul 21
0
[LLVMdev] MC-JIT
On Tue, Jul 20, 2010 at 3:41 PM, Olivier Meurant
<meurant.olivier at gmail.com> wrote:
> New patch taking Eli's comments into account.
Comments inline. If you have commit access, I'd fire away. If not, I can.
diff --git include/llvm/MC/MCAssembler.h include/llvm/MC/MCAssembler.h
index 07ca070..afff96e 100644
--- include/llvm/MC/MCAssembler.h
+++ include/llvm/MC/MCAssembler.h
2015 Aug 01
3
[LLVMdev] SelectionDAG viewers, filter-view-dags question
The diff is not only the && and || but also the leading !:
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 58f029fbe9fc..7ee06fc153b2 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -659,7 +659,7 @@ void SelectionDAGISel::CodeGenAndEmitDAG() {
2017 Oct 23
2
EnableFastISel
Hi,
In SelectionDAGISel::SelectAllBasicBlocks
if (TM.Options.EnableFastISel)
FastIS = TLI->createFastISel(*FuncInfo, LibInfo);
followed by
if (!FastIS) {
LowerArguments(Fn);
} else {
The above implies that implementing FastIS is optional.
In contrast to that, testing whether FastIS is actually been used is
done by testing if TM.Options.EnableFastISel is set.
For example
2011 Feb 24
2
[LLVMdev] CodeGenOpt
Chris Lattner <clattner at apple.com> writes:
>> class CodeGenOpt {
>> ...
>> public
>> getOptLevel() ...;
>> getFPLevel() ...;
>> getMemLevel() ...;
>> };
>>
>> Does this sound reasonable?
>
> I don't think that this is the right way to go. Higher level
> decisions like that should affect your choice of passes to
2015 Nov 18
4
Mips unconditionally uses fast-isel?
Well, 'optnone' is already not identical to -O0, and given the nature of things, probably can't be; but I am persuaded that it's reasonable for it to honor the -fast-isel option as a debugging tactic. I'll take an AI to make this happen.
Thanks,
--paulr
P.S. One nit, the "O0 + optnone" case should not have an asterisk, the FastISel flag is not manipulated if the opt
2011 Sep 19
1
[LLVMdev] Seg Fault when creating an execution engine
I am creating an ExecutionEngine using the LLVMCreateExecutionEngineForModule function from the C API. I am get a set fault with the following backtrace.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000120
0x0000000107c06643 in llvm::LLVMTargetMachine::addCommonCodeGenPasses ()
(gdb) bt
#0 0x0000000107c06643 in
2013 Apr 01
3
[LLVMdev] proposed change to class BasicTTI and dual mode mips16/32 working
On Thu, Mar 28, 2013 at 12:22 PM, Nadav Rotem <nrotem at apple.com> wrote:
> IMHO the right way to handle target function attributes is to
> re-initialize the target machine and TTI for every function (if the
> attributes changed). Do you have another solution in mind ?
I don't really understand this.
TargetMachine and TTI may be quite expensive to initialize. Doing so for
2015 Aug 11
2
Fwd: [LLVMdev] SelectionDAG viewers, filter-view-dags question
Hi,
It's changed a few times over the last year. I believe xdg-open spawns whichever application your desktop environment would use to open the file so you should be able to tell it to use dotty.
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Ryan Taylor via llvm-dev
Sent: 11 August 2015 00:30
To: llvm-dev at lists.llvm.org
Subject: [llvm-dev] Fwd: [LLVMdev]
2015 Jul 27
1
[LLVMdev] SelectionDAG viewers, filter-view-dags question
Daniel,
Ok, thanks. Simple fix. We'll just make correction in local copy for now,
one less thing to port later :)
Thanks.
On Mon, Jul 27, 2015 at 12:29 PM, Daniel Sanders <Daniel.Sanders at imgtec.com>
wrote:
> I've just looked at my checkout of 3.6 and it looks like the fix wasn't
> merged. I don't have the revision number for the fix to hand but in
>
2009 Apr 21
6
[LLVMdev] ARM and lowerinvoke
All,
I'm looking at the lowerinvoke pass as a starting point for getting
SJLJ based exception handling working on ARM, but am having some
troubles with it. When I run a simple testcase (attached) through llc
and specify -enable-correct-eh-support, llc asserts on me. It appears
there's been some bitrot somewhere. SelectDAGBuild and
SelectionDAGISel cooperate to track landing pads
2008 Aug 04
1
[LLVMdev] Assertion Failure: Not all catch info was assigned to a landing pad
I'm getting a very stubborn assertion failure that I don't understand.
After I insert a call to an externally defined function into an invoked
function, llc spits out the following assertion failure when I compile the
bytecode:
llc: SelectionDAGISel.cpp:4912: virtual bool
llvm::SelectionDAGISel::runOnFunction(llvm::Function&): Assertion
`FuncInfo.CatchInfoFound.size() ==
2017 Jan 06
3
LLVMTargetMachine with optimization level passed from clang.
Here is a problem scenario.
I want to enable a backend pass at -O2 or above.
if (TM->getOptLevel() >= CodeGenOpt::Default)
addPass(&xxxxx);
This pass will be run at -O1 too since clang is creating the TargetMachine with CodeGenOpt::Default for -O1.
--Sumanth G
-----Original Message-----
From: mehdi.amini at apple.com [mailto:mehdi.amini at apple.com]
Sent: Friday, January 6, 2017
2013 Dec 17
3
[LLVMdev] Trying to use patchpoint in MCJIT
Hi all,
I'm trying to play with patchoint (with MCJIT and VMKit) and I don't
understand something. I generate this call for my first patch point.
Basically, I want to call f(0).
%5 = call i64 (i64, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(
i64 42, ;; patch point id is 42
i32 0, ;; 0 bytes for the padding
i8* bitcast (i32 (i32)* @f to i8*), ;; my function f
i32 1,
2011 Feb 24
0
[LLVMdev] CodeGenOpt
On Feb 24, 2011, at 8:14 AM, David A. Greene wrote:
> Chris Lattner <clattner at apple.com> writes:
>
>>> class CodeGenOpt {
>>> ...
>>> public
>>> getOptLevel() ...;
>>> getFPLevel() ...;
>>> getMemLevel() ...;
>>> };
>>>
>>> Does this sound reasonable?
>>
>> I don't think that this is
[LLVMdev] ExtractBasicBlock() on block that ends with invoke or unreachable triggers assert() in llc
2010 Jun 05
1
[LLVMdev] ExtractBasicBlock() on block that ends with invoke or unreachable triggers assert() in llc
Here it is:
llc: SelectionDAGISel.cpp:358: virtual bool
llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&):
Assertion `FuncInfo->CatchInfoFound.size() ==
FuncInfo->CatchInfoLost.size() && "Not all catch info was assigned to
a landing pad!"' failed.
0 libLLVM-2.7.so 0x0140e2c8
Stack dump:
0. Program arguments: llc -O0 bullet.linked.bc.opt
1.
2013 Dec 18
2
[LLVMdev] Trying to use patchpoint in MCJIT
Ok I see. Of course, at runtime, it's enough for dynamic linking or for
deoptimization. However, wmkit acts both as a jit and as an aot. For the
aot, it means that I can not use patchpoint and that I should have two
different compilation strategy. It's not so difficult, but in this case, I
can not use patchpoints to generate gc's stackmap for the aot (basically, I
think that I could
2017 Jan 06
2
LLVMTargetMachine with optimization level passed from clang.
getOptLevel() gets the level from TargetMachine which is created by the Backendutil in clang with either
"Default", "None" or "Aggressive". Threre is no correspondence for "Less".
This boils down to , if I pass "-O1", the Target Machine is created with CodeGenOpt::Default.
I am available on IRC @ sgundapa.
-----Original Message-----
From:
2011 Aug 10
1
[LLVMdev] How to emit a simple stream of machine code.
Hi,
I am working on an LLVM backend for GPUs, and I would like to be able
to emit a very simple byte stream of machine code, so that it can be
fed directly into the GPU. I don't need anything fancy, just the raw
machine code, one instruction after another. I think I've already
implemented everything in the backend that is required to do this, but
I'm not sure how to get a pointer to