小编zr.*_*zr.的帖子

为什么允许gcc从结构中推测性地加载?

显示可能出错的gcc优化和用户代码的示例

下面的代码段中的函数'foo'将只加载一个结构成员A或B; 至少这是未经优化的代码的意图.

typedef struct {
  int A;
  int B;
} Pair;

int foo(const Pair *P, int c) {
  int x;
  if (c)
    x = P->A;
  else
    x = P->B;
  return c/102 + x;
}
Run Code Online (Sandbox Code Playgroud)

这是gcc -O3给出的:

mov eax, esi
mov edx, -1600085855
test esi, esi
mov ecx, DWORD PTR [rdi+4]   <-- ***load P->B**
cmovne ecx, DWORD PTR [rdi]  <-- ***load P->A***
imul edx
lea eax, [rdx+rsi]
sar esi, 31
sar eax, 6
sub eax, esi
add eax, ecx
ret …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly gcc compiler-optimization

52
推荐指数
5
解决办法
4140
查看次数

vs omp simd并行:什么时候使用?

OpenMP 4.0引入了一个名为"omp simd"的新结构.使用这种结构比旧的"并行"有什么好处?什么时候会比另一个更好?

编辑:这是一篇与SIMD指令相关的有趣论文.

c c++ performance simd openmp

50
推荐指数
2
解决办法
2万
查看次数

fastcall真的更快吗?

fastcall调用约定是否真的比其他调用约定更快,例如cdecl?是否有任何基准测试表明调用约定会影响性能?

c++ performance calling-convention fastcall

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

readelf vs. objdump:为什么两者都需要

我需要了解我正在处理的项目的ELF文件布局,并且我注意到这些工具的存在.为什么所有Linux发行版都包含readelf和objdump?这些工具是否相互补充?我什么时候更愿意使用另一个?

linux elf objdump readelf

37
推荐指数
1
解决办法
1万
查看次数

应该何时使用内存视图?

memoryview的完整描述可以在这里找到:

创建一个memoryview引用obj.obj必须支持缓冲协议.支持缓冲协议的内置对象包括bytesbytearray.

A memoryview具有元素的概念,元素是由始发对象obj处理的原子存储单元.对于许多简单类型,例如bytesbytearray,元素是单个字节,但是其他类型array.array可能具有更大的元素.

python python-3.x memoryview

29
推荐指数
1
解决办法
8872
查看次数

C中的浮点运算是关联的吗?

添加在数学上保持关联属性:

(a + b) + c = a + (b + c)
Run Code Online (Sandbox Code Playgroud)

在一般情况下,此属性不适用于浮点数,因为它们表示有限精度的值.

作为优化的一部分,是否允许编译器在从C程序生成机器代码时进行上述替换?它在C标准中的确切位置在哪里?

c math floating-point compiler-optimization

22
推荐指数
2
解决办法
3712
查看次数

没有主分支创建的Git存储库

我想为新项目(在VM上)创建一个新的共享git存储库.

我跑git --bare init/.../git/new_proj.git,但.../git/new_proj.git/refs/heads目录中没有创建主分支.我也运行sudo chmod 777 -R了我的目录,但它没有帮助,并且在init命令后仍然没有创建master .

编辑: 我甚至尝试使用git init(没有裸标志),但仍然没有创建主分支.

谷歌在这件事上帮助不大......

谁知道问题是什么?我错过了什么?谢谢!

git repository git-branch

19
推荐指数
2
解决办法
2万
查看次数

如何在除.svn目录下的文件之外的所有文件上递归运行命令

以下是我在所有文件上递归运行dos2unix的方法:

find -exec dos2unix {} \;
Run Code Online (Sandbox Code Playgroud)

我需要更改什么才能跳过.svn /目录下的文件?

unix bash shell find

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

如何在csv文件中转置数据集?

例如,我想改造:

Name,Time,Score
Dan,68,20
Suse,42,40
Tracy,50,38
Run Code Online (Sandbox Code Playgroud)

成:

Name,Dan,Suse,Tracy
Time,68,42,50
Score,20,40,38
Run Code Online (Sandbox Code Playgroud)

编辑:原始问题错误地使用术语"转置".

python csv transpose

17
推荐指数
3
解决办法
3万
查看次数

是否有IEEE-754操作的开源c/c ++实现?

我正在寻找IEEE-754操作的参考实现.有这样的事吗?

c++ floating-point open-source ieee-754

14
推荐指数
2
解决办法
9080
查看次数