Displaying 20 results from an estimated 3000 matches similar to: "[LLVMdev] suggestion: add a member in llvm::CodeMetrics"
2010 Apr 18
0
[LLVMdev] create two Twine object
According to documentation Twines should be used only for temporary
values and not stored, so allocating the in heap sounds wrong.
I think all you need here is
static int varNum;
++varNum;
Instruction *sstatusInst = new AllocaInst(StatusTy, Twine("status") +
Twine(varNum), entry_inst);
Instruction *sreqInst = new AllocaInst(ReqTy, Twine("request") +
Twine(varNum),
2010 Apr 18
1
[LLVMdev] create two Twine object
On Sun, Apr 18, 2010 at 4:36 AM, Eugene Toder <eltoder at gmail.com> wrote:
> According to documentation Twines should be used only for temporary
> values and not stored, so allocating the in heap sounds wrong.
Yes, in general you should never be naming Twine directly, except in
the case where you need to make a Twine for an integer. All other uses
should be considered poor style, as
2011 Jun 07
2
[LLVMdev] llvm-gfortran
Hello folks,
I want to compile some fortran code to IR, but llvm-gfortran 4.2-2.9 does
compile my fortran code. gfortran 4.2.1 fail with the same error. but
gfortran 4.4.6 and ifort compiles fine. Attached is the file causing
error. Error message is
m_List.F90: In function 'exporttostring_':
m_List.F90:925: error: conversion to non-scalar type requested
I wonder if there any way I can
2010 Apr 18
4
[LLVMdev] create two Twine object
I need to generate variables like
status1, status2, status3, ......
request1, request2, request3, ......
this is my code, other unrelated detail are eliminated.
static int varNum;
static const char *getVarNum() {
++varNum;
std::stringstream ss;
ss << varNum;
std::string *varname = new std::string(ss.str());
return varname->c_str();
}
const char *VarNum = getVarNum();
Twine *x1 = new
2011 Jun 07
0
[LLVMdev] llvm-gfortran
On Tue, Jun 7, 2011 at 2:33 PM, Yuanfang Chen <tabloid.adroit at gmail.com> wrote:
> Hello folks,
> I want to compile some fortran code to IR, but llvm-gfortran 4.2-2.9 does
> compile my fortran code. gfortran 4.2.1 fail with the same error. but
> gfortran 4.4.6 and ifort compiles fine. Attached is the file causing
> error. Error message is
> m_List.F90: In function
2010 Apr 19
2
[LLVMdev] The "scope" of passes
ether zhhb wrote:
> hi John,
>
> sorry for reply so late.
>
> On Tue, Apr 13, 2010 at 10:38 PM, John Criswell <criswell at uiuc.edu
> <mailto:criswell at uiuc.edu>> wrote:
>
> Devang Patel wrote:
>
> On Mon, Apr 12, 2010 at 6:41 PM, ether zhhb
> <etherzhhb at gmail.com <mailto:etherzhhb at gmail.com>> wrote:
>
>
2010 Apr 20
0
[LLVMdev] The "scope" of passes
hi John,
On Mon, Apr 19, 2010 at 10:27 PM, John Criswell <criswell at uiuc.edu> wrote:
> ether zhhb wrote:
>
>> hi John,
>>
>> sorry for reply so late.
>>
>> On Tue, Apr 13, 2010 at 10:38 PM, John Criswell <criswell at uiuc.edu<mailto:
>> criswell at uiuc.edu>> wrote:
>>
>> Devang Patel wrote:
>>
>> On
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
2012 Nov 26
0
[LLVMdev] RFC: change BoundsChecking.cpp to use address-based tests
Hi Kevin,
Thanks for your interest and for your deep analysis.
Unfortunately, your approach doesn't catch all bugs and is vulnerable to an
attack.
Consider the following case:
...................... | ----- obj --- | |
end ^ ptr ^ ^ end-of-memory
The scenario is as follows:
- an object is allocated in the last page of the address space
- obj is byte
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
2012 Nov 26
2
[LLVMdev] RFC: change BoundsChecking.cpp to use address-based tests
I am investigating changing BoundsChecking to use address-based rather
than size- & offset-based tests.
To explain, here is a short code sample cribbed from one of the tests:
%mem = tail call i8* @calloc(i64 1, i64 %elements)
%memobj = bitcast i8* %mem to i64*
%ptr = getelementptr inbounds i64* %memobj, i64 %index
%4 = load i64* %ptr, align 8
Currently, the IR for bounds checking
2012 Dec 04
2
[LLVMdev] RFC: change BoundsChecking.cpp to use address-based tests
Nuno,
Inspired by this email thread, I spent a bit of time today looking
through the implementation of BoundsChecking::instrument(..). Based on
my reading of prior work, it should be possible to do these checks in
two comparisons, or possibly even one if the right assumptions could be
made.
Could you provide a bit of background of the expected domains of Size
and Offset? In particular,
2020 Jul 15
3
[RFC] Introducing classes for the codegen driven by new pass manager
> On Jul 15, 2020, at 12:28, Chen, Yuanfang <Yuanfang.Chen at sony.com> wrote:
>
> In codegen with NPM, I've made all codegen passes (IR or MIR pass) to be only driven by `llc`. Both due to the way NPM registering pass (on-demand&dynamic instead of static initialization in Legacy PM), and reduce the confusion about which tool (`llc` or `opt`) to test codegen IR passes.
>
2015 May 28
0
[LLVMdev] PGO for macro expansion code
On 05/28/15 15:27, Yuanfang Chen wrote:
> #define GET_BIT(lll) \
> // blah blah
>
> #define G(label1,label2) \
> { \
> // decent amount code \
> ...
> while (1) { \
> GET_BIT(label2); \
> }; \
> }
>
> void f() {
> if (..)
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
2012 Feb 27
3
[LLVMdev] How to unroll loop with non-constant boundary
Dear LLVM,
Consider two loops with one interation -
First with constant lower bound, second with usual non-constant lower
bound:
int main(int argc, char ** argv)
{
int numOfIterations= 1;
int stride=1;
int lowerBound = 1000; - 1st | int lowerBound = argc; - 2nd
int upperBound = lowerBound + (numOfIterations - 1)*stride;
int i = lowerBound;
2012 Feb 27
0
[LLVMdev] How to unroll loop with non-constant boundary
On 27.02.2012, at 17:13, Николай Лихогруд wrote:
> Dear LLVM,
>
> Consider two loops with one interation -
> First with constant lower bound, second with usual non-constant lower bound:
>
> int main(int argc, char ** argv)
> {
> int numOfIterations= 1;
> int stride=1;
> int lowerBound = 1000; - 1st | int lowerBound =
2012 Feb 27
0
[LLVMdev] How to unroll loop with non-constant boundary
On 27.02.2012, at 18:49, Eli Friedman wrote:
> On Mon, Feb 27, 2012 at 9:30 AM, Benjamin Kramer
> <benny.kra at googlemail.com> wrote:
>>
>> On 27.02.2012, at 17:13, Николай Лихогруд wrote:
>>
>>> Dear LLVM,
>>>
>>> Consider two loops with one interation -
>>> First with constant lower bound, second with usual
2017 Sep 05
1
BUILTIN\Administrators - failed to call wbcSidToUid: WBC_ERR_DOMAIN_NOT_FOUND
Well, we are getting somewere...;)
>It is probably 'greyed' out because no Windows tools use it or will
add it. You will probably need to use Unix tools (ldb or ldap) to
remove>them, but you can if you so wish ignore them. What you should
never do is to rely on them being there, because they may or may not be
there.Ok, I'll let it be there> You need to remove the gidNumber
2012 Feb 27
2
[LLVMdev] How to unroll loop with non-constant boundary
On Mon, Feb 27, 2012 at 9:30 AM, Benjamin Kramer
<benny.kra at googlemail.com> wrote:
>
> On 27.02.2012, at 17:13, Николай Лихогруд wrote:
>
>> Dear LLVM,
>>
>> Consider two loops with one interation -
>> First with constant lower bound, second with usual non-constant lower bound:
>>
>> int main(int argc, char ** argv)
>> {