- Mar 24, 2010
-
-
Bob Wilson authored
--- Reverse-merging r99400 into '.': D test/CodeGen/Generic/2010-03-24-liveintervalleak.ll U lib/CodeGen/LiveIntervalAnalysis.cpp llvm-svn: 99419
-
Torok Edwin authored
otherwise the SmallVector it contains doesn't free its memory. In most cases LiveIntervalAnalysis could get away by not calling the destructor, because VNInfos are bumpptr-allocated, and smallvectors usually don't grow. However when the SmallVector does grow it always leaks. This is the valgrind shown leak from the original testcase: ==8206== 18,304 bytes in 151 blocks are definitely lost in loss record 164 of 164 ==8206== at 0x4A079C7: operator new(unsigned long) (vg_replace_malloc.c:220) ==8206== by 0x4DB7A7E: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (in /home/edwin/clam/git/builds/defaul t/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4F90382: llvm::VNInfo::addKill(llvm::SlotIndex) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libcl amav.so.6.1.0) ==8206== by 0x5126B5C: llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::M achineInstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) (in /home/edwin/clam/git/builds/defau lt/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x512725E: llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::MachineI nstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav .so.6.1.0) ==8206== by 0x51278A8: llvm::LiveIntervals::computeIntervals() (in /home/edwin/clam/git/builds/default/libclamav/.libs/libc lamav.so.6.1.0) ==8206== by 0x5127CB4: llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) (in /home/edwin/clam/git/builds/de fault/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAE935: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAEB10: llvm::FunctionPassManagerImpl::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAED3D: llvm::FunctionPassManager::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclamav/.l ibs/libclamav.so.6.1.0) ==8206== by 0x4D8BE8E: llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4D8CA72: llvm::JIT::getPointerToFunction(llvm::Function*) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) llvm-svn: 99400
-
Evan Cheng authored
llvm-svn: 99378
-
Dan Gohman authored
llvm-svn: 99372
-
- Mar 23, 2010
-
-
Dan Gohman authored
needed here. llvm-svn: 99339
-
Dan Gohman authored
beyond just calling getTypeToTransformTo. llvm-svn: 99335
-
Evan Cheng authored
llvm-svn: 99321
-
Evan Cheng authored
llvm-svn: 99319
-
Chris Lattner authored
llvm-svn: 99227
-
Devang Patel authored
llvm-svn: 99225
-
- Mar 22, 2010
-
-
Devang Patel authored
DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file. llvm-svn: 99223
-
Evan Cheng authored
llvm-svn: 99214
-
Jeffrey Yasskin authored
it allocates to DwarfDebug::DIEValues. llvm-svn: 99196
-
Evan Cheng authored
llvm-svn: 99195
-
- Mar 21, 2010
-
-
Jeffrey Yasskin authored
llvm-svn: 99113
-
- Mar 19, 2010
-
-
Bob Wilson authored
disabled for several months (since svn r88806) and no one noticed. My fix for pr6543 yesterday reenabled it, but broke the ARM port's code for using TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only, I'm just taking this out. It is not common to have identical jump tables, the code we used to merge them was O(N^2), and it only helps code size, not performance. llvm-svn: 98977
-
Mon P Wang authored
llvm-svn: 98920
-
- Mar 18, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 98888
-
Dan Gohman authored
RecyclingAllocator to allow client code to be simpler, and simplify several clients. llvm-svn: 98847
-
Bob Wilson authored
always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables. I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables. llvm-svn: 98845
-
Dan Gohman authored
llvm-svn: 98838
-
Devang Patel authored
llvm-svn: 98830
-
Jakob Stoklund Olesen authored
This reverts commit 98776. It broke the llvm-gcc boot strap. llvm-svn: 98784
-
Devang Patel authored
llvm-svn: 98778
-
Jakob Stoklund Olesen authored
Remove ugly hack that aborted the coalescer before using N^2 time. This affects functions with very complicated live intervals for physical registers, i.e. functions with thousands of function calls. llvm-svn: 98776
-
- Mar 17, 2010
-
-
Devang Patel authored
Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*. llvm-svn: 98743
-
Chris Lattner authored
should use CreateTempSymbol() if they don't care about the name. llvm-svn: 98712
-
Bob Wilson authored
llvm-svn: 98694
-
- Mar 16, 2010
-
-
Evan Cheng authored
llvm-svn: 98686
-
Chris Lattner authored
handling constant unions. llvm-svn: 98680
-
Devang Patel authored
llvm-svn: 98675
-
Daniel Dunbar authored
llvm-svn: 98662
-
Chris Lattner authored
llvm-svn: 98656
-
Bill Wendling authored
llvm-svn: 98604
-
Bill Wendling authored
"used outside of the block". If the block ends in a return, then it won't be used outside of it. llvm-svn: 98599
-
Chris Lattner authored
to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. llvm-svn: 98595
-
- Mar 15, 2010
-
-
Bill Wendling authored
section, remove the target-specific code that performs this. llvm-svn: 98580
-
Chris Lattner authored
label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. llvm-svn: 98579
-
Chris Lattner authored
llvm-svn: 98577
-
Devang Patel authored
This is a work in progress. Patch by Dale Johannesen! llvm-svn: 98568
-