Displaying 19 results from an estimated 19 matches for "artjom".
2009 Jul 08
2
[LLVMdev] Selection of multiple instructions
...to do that at the selection level? If yes, could you give a
simple example or some hint how it would be done? I only find examples where
exactly one instruction is emitted (and/or returned).
Do you think it's the right approach or is there a better place?
I'd really appreciate your help.
Artjom Kochtchi
--
View this message in context: http://www.nabble.com/Selection-of-multiple-instructions-tp24395706p24395706.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Aug 03
0
[LLVMdev] code-altering Passes for llc
Does the error function *have* to be auto-generated in your pass?
Perhaps the original code should use invokes, and your pass insert the
error check with a jne to the "unwind" block.
On Mon, Aug 3, 2009 at 5:18 AM, Artjom
Kochtchi<artjom.kochtchi at googlemail.com> wrote:
>
>
> Dan Gohman-2 wrote:
>>
>> You don't need a ModulePass to modify a CFG. A MachineFunctionPass
>> is fine for this.
>>
> Well, okay. But I need to insert some BasicBlock that contains the error
>...
2009 Aug 03
2
[LLVMdev] code-altering Passes for llc
Dan Gohman-2 wrote:
>
> You don't need a ModulePass to modify a CFG. A MachineFunctionPass
> is fine for this.
>
Well, okay. But I need to insert some BasicBlock that contains the error
handling (that the runtime check jumpts to on failure). Just putting another
MachineBasicBlock at the beginning of some arbitrary MachineFunction doesn't
seem to be the right way to go, does
2009 Aug 06
2
[LLVMdev] code-altering Passes for llc
...no use to replicate it at every call.
So I was searching for a possibility to include an additional
(Machine)BasicBlock (or rather a MachineFunction?) somewhere in the program
that contains the program termination and that I can jump to on check
failure. Can't I do that during a Pass in llc?
-Artjom
--
View this message in context: http://www.nabble.com/code-altering-Passes-for-llc-tp24778261p24845838.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Jul 08
0
[LLVMdev] Selection of multiple instructions
On Jul 8, 2009, at 10:16 AM, Artjom Kochtchi wrote:
>
> Hi,
>
> I'm currently trying to modify LLVM to include runtime checks into X86
> binaries. I've looked into some of the possibilities during the phases
> happening in LLVM and have the impression that inserting runtime
> checks
> during selecti...
2009 Jun 26
2
[LLVMdev] Inserting nodes into SelectionDAG (X86)
...deOperands(llvm::SDValue, llvm::SDValue,
llvm::SDValue): Assertion `N->getNumOperands() == 2 && "Update with wrong
number of operands"' failed.
Omiting the target register or switching operand order seems not to change
anything.
I'd really appreciate your help on this.
Artjom
--
View this message in context: http://www.nabble.com/Inserting-nodes-into-SelectionDAG-%28X86%29-tp24211066p24218876.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Jun 25
2
[LLVMdev] Inserting nodes into SelectionDAG (X86)
...n in ISD? I can't find it...
4) Do I get the parameter passing right? Fooling around with other
expressions suggests that I get it wrong.
5) What exactly is the meaning of further result types? If I get the new
Chain object back, are the other results inside?
Could you help me out?
Sincerely,
Artjom Kochtchi
--
View this message in context: http://www.nabble.com/Inserting-nodes-into-SelectionDAG-%28X86%29-tp24211066p24211066.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Jun 27
0
[LLVMdev] Inserting nodes into SelectionDAG (X86)
On Jun 26, 2009, at 4:49 AM, Artjom K. wrote:
>
> Thank you for your help.
>
> I think I managed to create the instruction I wanted:
>
> // mov eax, 41
> Chain = DAG.getCopyToReg(Chain, DAG.getRegister(X86::EAX, MVT::i32),
> DAG.getConstant(41, MVT::i32), InFlag);
> InFlag = Chain.getValue(1);
>
>...
2009 Aug 06
0
[LLVMdev] code-altering Passes for llc
On Aug 6, 2009, at 5:45 AM, Artjom Kochtchi wrote:
> So I was searching for a possibility to include an additional
> (Machine)BasicBlock (or rather a MachineFunction?) somewhere in the
> program
> that contains the program termination and that I can jump to on check
> failure. Can't I do that during a Pass in l...
2009 Jun 29
2
[LLVMdev] Inserting nodes into SelectionDAG (X86)
...wrong number of operands:
Ops.push_back(Chain);
Ops.push_back(DAG.getRegister(X86::EAX, MVT::i32));
Ops.push_back(DAG.getConstant(1, MVT::i32));
Chain = DAG.getNode(ISD::ADD, DAG.getVTList(MVT::Other, MVT::i32),
&Ops[0], Ops.size());
Isn't that the way how it is supposed to work?
Artjom
--
View this message in context: http://www.nabble.com/Inserting-nodes-into-SelectionDAG-%28X86%29-tp24211066p24256897.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Jul 03
0
[LLVMdev] Inserting nodes into SelectionDAG (X86)
...nstruction wont be interpreted as a memory location (but as a constant).
4) The ISD::BR_CC instruction requires to be passed a MachineBasicBlock.
Obviously, the uninitialized pointer in my example won't work. Is there any
way to access any MBB in the Program from X86ISelLowering::LowerCALL?
- Artjom
--
View this message in context: http://www.nabble.com/Inserting-nodes-into-SelectionDAG-%28X86%29-tp24211066p24328767.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Aug 02
2
[LLVMdev] code-altering Passes for llc
...ction changes control flow, so the CFG is not
up to date after the pass. Do I set AnalysisUsage in getAnalysisUsage to
preserve nothing? In that case, is the CFG updated automatically by LLVM or
do I need to apply the changes during the Pass not only the the
MachineFunction, but also the the CFG?
-Artjom
--
View this message in context: http://www.nabble.com/code-altering-Passes-for-llc-tp24778261p24778261.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Jul 01
3
[LLVMdev] Inserting nodes into SelectionDAG (X86)
On Jul 1, 2009, at 2:22 PMPDT, Dan Gohman wrote:
>> Ops.push_back(DAG.getConstant(1, MVT::i32));
>> Chain = DAG.getNode(ISD::ADD, DAG.getVTList(MVT::Other, MVT::i32),
>> &Ops[0], Ops.size());
>>
>> Isn't that the way how it is supposed to work?
>
> ADD does not use a chain, so there's no chain operand, or
> MVT::Other result for it in an ADD
2009 Jun 25
0
[LLVMdev] Inserting nodes into SelectionDAG (X86)
On Jun 25, 2009, at 2:05 PM, Artjom K. wrote:
>
> Greetings,
>
> I am rather new to LLVM, so please excuse my limited knowledge about
> it.
>
> Currently I am trying to modify the X86TargetLowering::LowerCALL
> method by
> inserting additional instructions before the call.
> As far as I understand,...
2009 Jul 01
0
[LLVMdev] Inserting nodes into SelectionDAG (X86)
On Jun 29, 2009, at 9:00 AM, Artjom Kochtchi wrote:
>
> Sorry to ask again, but I still can't get it right.
>
> The following code compiles and runs, but produces no instructions:
> Ops.push_back(DAG.getRegister(X86::EAX, MVT::i32));
> Ops.push_back(DAG.getConstant(1, MVT::i32));
> DAG.getNode(ISD::ADD,...
2009 Aug 02
0
[LLVMdev] code-altering Passes for llc
On Aug 2, 2009, at 7:09 AM, Artjom Kochtchi wrote:
>
> Greetinigs,
>
> I am extending llc to include runtime checks for calls (in X86). So
> a call
> 'call target' is altered to look like this:
>
> [some check]
> jne error_function
> call target
>
> I've done this by implementing...
2009 Sep 24
0
[LLVMdev] Split MachineBasicBlocks
...basically stolen from
BranchFolder::SplitMBBAt.
Currently I use the gcc benchmark from SPEC2000 to generate the error, but I
guess every reasonably complex program will do. I have attached my
MachineFunctionPass, in case you need to look at the code. Does anyone have
an idea what is wrong here?
- Artjom
http://www.nabble.com/file/p25552660/SplitMinPass.cpp SplitMinPass.cpp
--
View this message in context: http://www.nabble.com/Split-MachineBasicBlocks-tp25552660p25552660.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
2009 Sep 06
0
[LLVMdev] How to differentiate between external and internal calls in llc?
I have a MachineFunctionPass plugged into llc during
LLVMTargetMachine::addPreRegAlloc. In this Pass I need to extend calls (i.
e. CALL32m, CALL32r) iff they call function within the program.
CALL32m has, I think, ten different possibilities for the four operands
giving the target address. At the moment I have excluded calls that give the
displacement as GlobalAddress or JumpTableIndex
2006 Jan 17
2
Instant Rails request lags >4 sec
Hello RoR folks,
I am using Instant Rails and a small app that currently uses scaffolding
for CRUD on just one table with 7 attributes. I am not shure wether
scaffolding slows down the app that much but I have a time lag for every
request with above 4 sec. The preinstalled apps like Type are running
damn fast, which is not the case for my stuff.
Any help on this would be great
Thanks,
RTG
--