小编sim*_*ser的帖子

llvm将控制流图转储到pass中的文件

我想在我的一个传递中在llvm中构建一个控制流图图.我目前使用以下内容来显示CFG

block->getParent()->viewCFG(); //block is a basic block
Run Code Online (Sandbox Code Playgroud)

问题是它会弹出一个窗口.我只想将cfg转储到该特定程序点,作为点文件(如果可能的话,还是jpg),不要显示在窗口中.我怎么能这样做?我正在使用llvm 3.1.

注意:我正在修改我的传递中的cfg,在该程序点之前.因此,我无法使用opt -view-cfg.

更新:

感谢Mishr,我能够用这个绘制图形

WriteGraph(File, (const llvm::Function*) &fun, true, "test"); //I have also tired with false

显示了CFG.但节点是空白的.如何显示节点的内容

llvm llvm-3.1 control-flow-graph

5
推荐指数
1
解决办法
2120
查看次数

clang添加了一个新的pragma

我想知道哪些llvm IR语句对应于clang中特定pragma中的代码.我的pragma具有以下结构.

#pragma markme
{
   stmt1;
   stmt2;
}
Run Code Online (Sandbox Code Playgroud)

我需要知道在标记me pragma的开口括号和闭合括号之间存在哪些所有stmts.

我们可以为这些stmts附加一些元数据吗?如果是,任何人都可以指点我一些参考.

我在Google上搜索过并找到了这个

添加一个pragma处理程序,它在actions接口上有一个回调.添加回调的sema实现,它在Sema对象中设置一些内部位.在'for'语句中添加一个新位,以指定它是否具有#pragma optimize set.修改codegin以根据该位发出元数据.

任何人都可以提供更多细节.

我正在使用最新的llvm(llvm 3.4)

注意:任何方向的任何帮助表示赞赏.我知道llvm可能会进行优化以改变陈述.但这对我没问题

llvm clang llvm-clang

4
推荐指数
1
解决办法
1661
查看次数

Twitter OAuth:用户/搜索工作但搜索/推文没有

我想在twitter上搜索推文.它不起作用.

$parameters = array('q' => 'oauth');
$result = $connection->get('search', $parameters);
Run Code Online (Sandbox Code Playgroud)

但是,当我做一个用户搜索它完美的工作.

$parameters = array('q' => 'oauth');
$result = $connection->get('users/search', $parameters);
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下,这也是行不通的

$parameters = array('q' => 'oauth');
$result = $connection->get('search/tweets', $parameters);
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

错误信息

stdClass Object
(
    [errors] => Array
        (
            [0] => stdClass Object
                (
                    [message] => Sorry, that page does not exist
                    [code] => 34
                )

        )

)
Run Code Online (Sandbox Code Playgroud)

php twitter search twitter-search

3
推荐指数
1
解决办法
2930
查看次数

c ++运算符重载参数与普通参数

我有一个功能模板(c ++)

template<typename T>
void print_to_default_file(T &obj, ADDON addon = "")
Run Code Online (Sandbox Code Playgroud)

和一个重载的功能

template<typename T>
void print_to_default_file(T &obj, std::string  objS) // or char* objS
Run Code Online (Sandbox Code Playgroud)

该类ADDON具有以下签名的运算符重载

void operator=(const std::string)
Run Code Online (Sandbox Code Playgroud)

问题是,当我执行print_to_default_file("测试","我将去哪里")

它正在呼叫第一个,但我想打电话给第二个.我也厌倦了char*而不是std :: string但结果是一样的.

有人可以指出出了什么问题

ADDON简化版

class ADDON {
    std::string s;

public:
    ADDON() {
        s = "";
    }

ADDON(std::string in) {
    s = in;
}

    ADDON(const char in[]) {
        s = in;
    }

    void operator=(const std::string in) {
        s = in;
    }

    std::string getString() {
        return s; …
Run Code Online (Sandbox Code Playgroud)

c++ templates overloading overload-resolution implicit-conversion

2
推荐指数
1
解决办法
137
查看次数