vitalyisaev 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
..
ABIInfo.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
Address.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
BackendUtil.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGAtomic.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGBlocks.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGBlocks.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGBuilder.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGBuiltin.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCUDANV.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCUDARuntime.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCUDARuntime.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCXX.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCXXABI.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCXXABI.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCall.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCall.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGClass.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCleanup.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCleanup.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGCoroutine.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGDebugInfo.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGDebugInfo.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGDecl.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGDeclCXX.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGException.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExpr.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExprAgg.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExprCXX.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExprComplex.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExprConstant.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGExprScalar.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGGPUBuiltin.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGLoopInfo.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGLoopInfo.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGNonTrivialStruct.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGObjC.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGObjCGNU.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGObjCMac.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGObjCRuntime.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGObjCRuntime.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenCLRuntime.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenCLRuntime.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenMPRuntime.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenMPRuntime.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenMPRuntimeGPU.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGOpenMPRuntimeGPU.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGRecordLayout.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGRecordLayoutBuilder.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGStmt.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGStmtOpenMP.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGVTT.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGVTables.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGVTables.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CGValue.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenABITypes.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenAction.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenFunction.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenFunction.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenModule.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenModule.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenPGO.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenPGO.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenTBAA.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenTBAA.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenTypeCache.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenTypes.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CodeGenTypes.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ConstantEmitter.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ConstantInitBuilder.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CoverageMappingGen.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
CoverageMappingGen.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
EHScopeStack.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ItaniumCXXABI.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
MacroPPCallbacks.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
MacroPPCallbacks.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
MicrosoftCXXABI.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ModuleBuilder.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ObjectFilePCHContainerOperations.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
PatternInit.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
PatternInit.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
README.txt 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
SanitizerMetadata.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
SanitizerMetadata.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
SwiftCallingConv.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
TargetInfo.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
TargetInfo.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
VarBypassDetector.cpp 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
VarBypassDetector.h 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago
ya.make 6ffe9e5365 YQ Connector: support managed ClickHouse 1 year ago

README.txt

IRgen optimization opportunities.

//===---------------------------------------------------------------------===//

The common pattern of
--
short x; // or char, etc
(x == 10)
--
generates an zext/sext of x which can easily be avoided.

//===---------------------------------------------------------------------===//

Bitfields accesses can be shifted to simplify masking and sign
extension. For example, if the bitfield width is 8 and it is
appropriately aligned then is is a lot shorter to just load the char
directly.

//===---------------------------------------------------------------------===//

It may be worth avoiding creation of alloca's for formal arguments
for the common situation where the argument is never written to or has
its address taken. The idea would be to begin generating code by using
the argument directly and if its address is taken or it is stored to
then generate the alloca and patch up the existing code.

In theory, the same optimization could be a win for block local
variables as long as the declaration dominates all statements in the
block.

NOTE: The main case we care about this for is for -O0 -g compile time
performance, and in that scenario we will need to emit the alloca
anyway currently to emit proper debug info. So this is blocked by
being able to emit debug information which refers to an LLVM
temporary, not an alloca.

//===---------------------------------------------------------------------===//

We should try and avoid generating basic blocks which only contain
jumps. At -O0, this penalizes us all the way from IRgen (malloc &
instruction overhead), all the way down through code generation and
assembly time.

On 176.gcc:expr.ll, it looks like over 12% of basic blocks are just
direct branches!

//===---------------------------------------------------------------------===//