Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] Finding previous emitted instruction"
2014 Sep 26
3
[LLVMdev] [lldb-dev] RFC: LLVM should require a working C++11 <thread>, <mutex>, and <atomic>
When LLVM's configure finds a usable <pthread.h>, it prefers to use that
rather than the home-grown stuff. However if LLVM is configured with
--disable-pthreads, both mingw flavors produce the same results.
BTW, I've tried to quantify the slowdown: a quick test indicates that LLVM
build that uses pthreads is about 10% slower than the one which doesn't.
This is less that I
2014 Apr 14
3
[LLVMdev] Emit code for 'unreachable'
Hi,
Is it somehow possible to have LLVM emit machine code for the 'unreachable'
IR instruction, which would assert that it indeed never gets reached?
Vadim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140414/02108a74/attachment.html>
2014 Aug 04
6
[LLVMdev] Argument Lowering Redux
Hi,
Having just found an ABI conformance bug in a compiler front-end, I am
curious: is the state of target-independent argument lowering in LLVM still
the same as when this thread was taking place?:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-February/thread.html#59387
Vadim
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2014 Apr 14
2
[LLVMdev] Emit code for 'unreachable'
I am not seeing this happening, at least not for unreachables that
follow calls to 'noreturn' functions.
On Apr 14, 2014, at 3:48 AM, Anton Korobeynikov <anton at korobeynikov.info> wrote:
> Hello
>
> x86 backend emits ud2 instruction in this case
>
> On Mon, Apr 14, 2014 at 1:46 PM, Vadim Chugunov <vadimcn at gmail.com> wrote:
>> Hi,
>> Is it
2014 Dec 03
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
On Wed, Dec 3, 2014 at 1:41 PM, Reid Kleckner <rnk at google.com> wrote:
> On Wed, Dec 3, 2014 at 1:27 PM, Vadim Chugunov <vadimcn at gmail.com> wrote:
>
>> If we added unwind target to every potentially throwing instruction
>> (loads, stores, all binary operations), wouldn't all such instructions have
>> to become BB terminators? I'd expect that CFG
2015 Jan 11
3
[LLVMdev] [RFC] [PATCH] add tail call optimization to thumb1-only targets
Hello,
find enclosed a first patch for adding tail call optimizations for
thumb1 targets.
I assume that this list is the right place for publishing patches for
review?
Since this is my first proposal for LLVM, I'd very much appreciate your
feedback.
What the patch is meant to do:
For Tail calls identified during DAG generation, the target address will
be loaded into a register
by use
2014 Sep 26
2
[LLVMdev] [lldb-dev] RFC: LLVM should require a working C++11 <thread>, <mutex>, and <atomic>
Hi Yaron,
Not sure I understand your question. Wasn't <mutex> one of the more
important C++11 features that LLVM would like to use?
On Thu, Sep 25, 2014 at 1:24 AM, Yaron Keren <yaron.keren at gmail.com> wrote:
> Vadim,
>
> Thanks for the feedback on the -win32. A dependency on a small DLL with
> BSD license does not sound too bad, but performance regression is
2014 Jul 26
3
[LLVMdev] Machine basic blocks
Hi,
I have a couple of questions about MachineBasicBlocks:
- If I have a pointer to an MBB, is there an easy way to find which block
that precedes it in the MachineFunction blocks list? (without iterating
through all of the MF's basic blocks)
- Does LLVM make any effort to ensure that MBB's predecessors and
successors lists are semantically correct? For example, what happens if
an MBB
2015 Jan 02
2
[LLVMdev] Evaluation of offsetof() macro
On Fri, Jan 2, 2015 at 2:20 AM, David Majnemer <david.majnemer at gmail.com>
wrote:
>
>
> On Fri, Jan 2, 2015 at 1:58 AM, Vadim Chugunov <vadimcn at gmail.com> wrote:
>
>> Hi!
>> LLVM has a class, ConstantExpr, that is very handy for compile-time
>> evaluation of const expressions. Unfortunately I cannot find any methods
>> in it that would be
2015 Jan 02
2
[LLVMdev] Evaluation of offsetof() macro
Hi!
LLVM has a class, ConstantExpr, that is very handy for compile-time
evaluation of const expressions. Unfortunately I cannot find any methods
in it that would be helpful in evaluation of expressions similar to this:
(uintptr_t)(&(*(TYPE*)0).FIELD), which is basically the implementation of
the offsetof(TYPE, FIELD) macro. Specifically, there seem to be no
provisions for dereferencing a
2014 Jun 20
3
[LLVMdev] [PATCH] Replace the Execution Engine's mutex with std::recursive_mutex
+llvmdev.
I find this pretty surprising. Actually, we already use std::mutex and
std::recursive_mutex in clang, lld, and other llvm projects, it's just a
coincidence that it hadn't been introduced into LLVM until my commits.
I'm not sure what the right thing to do here is. If I understand
correctly, it seems like in order to encounter this, a) you must be using
GCC, b) you must be
2014 Dec 03
2
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
If we added unwind target to every potentially throwing instruction (loads,
stores, all binary operations), wouldn't all such instructions have to
become BB terminators? I'd expect that CFG would then end up consisting
mostly of single-instruction BBs. This can't be good for compilation
performance and optimizations...
Another vague idea: what if lifetime.start() returned some kind
2014 Jul 10
2
[LLVMdev] bug in ilist_node::getPrevNode() ?
Hi all,
I stumbled over a problem in ilist_node::getPrevNode(). It crashes when invoked for the first element in a list.
It's because the Prev pointer of a first list element does not point to the sentinel but is just null.
First question: Is this really a bug or am I doing something wrong?
Second question: If it is a bug, what should be the correct behaviour? Either change insert() to let
2012 Dec 20
3
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
Hello John,
I was following your procedures and I isolated the problem. The problem are
represented by the basic blocks with only one element.
for (Function::iterator II = F.begin(), EE = F.end(); II != EE; ++II, ++ii)
{
BasicBlock* BB=II;
if (BB->getTerminator())
{
Instruction* current = BB->getTerminator();
Instruction* previous;
2014 Feb 11
3
[LLVMdev] Compiler-RT roadmap
Hello,
In continuation of several threads from the last week, I'd like to ask: is
there a stated plan of what is going to happen with compiler-rt in the near
future? In particular, I'm interested if any of the following is planned
to happen:
- Separation from clang
I've seen a suggestion to rename compiler-rt to "libclang_rt", but its'
applicability is much broader than
2015 Feb 11
2
[LLVMdev] deleting or replacing a MachineInst
This seems a very natural approach but I probably am having a trouble with
the iterator invalidation. However, looking at other peephole optimizers
passes, I couldn't see how to do this:
#define BUILD_INS(opcode, new_reg, i) \
BuildMI(*MBB, MBBI, MBBI->getDebugLoc(), TII->get(X86::opcode)) \
.addReg(X86::new_reg, kill).addImm(i)
for
2014 Dec 03
3
[LLVMdev] RFC: How to represent SEH (__try / __except) in LLVM IR
Hi Reid,
Is this design supposed to be able to cope with asynchronous exceptions?
I am having trouble imagining how this would work without adding the
ability to associate landing pads with scopes in LLVM IR.
Vadim
On Tue, Nov 25, 2014 at 5:27 PM, Reid Kleckner <rnk at google.com> wrote:
> On Tue, Nov 25, 2014 at 3:09 PM, Kaylor, Andrew <andrew.kaylor at intel.com>
> wrote:
2009 Nov 14
5
[LLVMdev] next
In many places there is code that looks like:
MBBI = next(MBBI);
In C++0X there is a std::next that is likely to be in scope when these
calls are made. And due to ADL the above call becomes ambiguous:
llvm::next or std::next?
I recommend:
MBBI = llvm::next(MBBI);
-Howard
2015 Feb 11
2
[LLVMdev] deleting or replacing a MachineInst
I made the change to the BuildMI() call. Again, I don't think that matters.
#define BUILD_INS(opcode, new_reg, i) \
BuildMI(*MBB, OldMI, MBBI->getDebugLoc(), TII->get(X86::opcode)) \
.addReg(X86::new_reg, kill).addImm(i)
I didn't completely understand your other proposed change:
for (MachineBasicBlock::iterator MBBI = MBB->begin();
2010 Aug 29
1
[LLVMdev] [Query] Programming Register Allocation
Thanks for the information.
I still don't know how do I partition registers into different classes from
the virtual registers? For instance, I have the function who which iterates
over the instructions, but I don't know how to write the function which
returns the different register class.
void RAOptimal::Gather(MachineFunction &Fn) {
// Gather just iterates over the blocks,