- Jan 06, 2011
-
-
Chris Lattner authored
llvm-svn: 122977
-
Greg Clayton authored
an issue with the way the UnwindLLDB was handing out RegisterContexts: it was making shared pointers to register contexts and then handing out just the pointers (which would get put into shared pointers in the thread and stack frame classes) and cause double free issues. MallocScribble helped to find these issues after I did some other cleanup. To help avoid any RegisterContext issue in the future, all code that deals with them now returns shared pointers to the register contexts so we don't end up with multiple deletions. Also now that the RegisterContext class doesn't require a stack frame, we patched a memory leak where a StackFrame object was being created and leaked. Made the RegisterContext class not have a pointer to a StackFrame object as one register context class can be used for N inlined stack frames so there is not a 1 - 1 mapping. Updates the ExecutionContextScope part of the RegisterContext class to never return a stack frame to indicate this when it is asked to recreate the execution context. Now register contexts point to the concrete frame using a concrete frame index. Concrete frames are all of the frames that are actually formed on the stack of a thread. These concrete frames can be turned into one or more user visible frames due to inlining. Each inlined stack frame has the exact same register context (shared via shared pointers) as any parent inlined stack frames all the way up to the concrete frame itself. So now the stack frames and the register contexts should behave much better. llvm-svn: 122976
-
Stephen Wilson authored
Update lib/Makefile to use current LLVM and Clang components and add the PluginUtility library to the build. llvm-svn: 122975
-
Stephen Wilson authored
In particular, we are looking to ignore the "#pragma mark" construct which GCC warns about on platforms other than Darwin. This cleans up diagnostic output significantly. llvm-svn: 122974
-
Douglas Gregor authored
template whose last parameter is a parameter pack. This allows us to form a call to, e.g., template<typename ...Args1, typename ...Args2> void f(std::pair<Args1, Args2> ...pairs); given zero or more instances of "pair". llvm-svn: 122973
-
Devang Patel authored
llvm-svn: 122972
-
Devang Patel authored
This fixes PR 8913 crash. llvm-svn: 122971
-
Bob Wilson authored
llvm-svn: 122970
-
Bob Wilson authored
llvm-svn: 122969
-
Bob Wilson authored
llvm-svn: 122968
-
Fariborz Jahanian authored
its own deprecated diagnostics group so it can be turned off selectively. // rdar://8827606 llvm-svn: 122967
-
Benjamin Kramer authored
llvm-svn: 122966
-
Bob Wilson authored
Patch by Sylvère Teissier. llvm-svn: 122965
-
Abramo Bagnara authored
llvm-svn: 122964
-
Abramo Bagnara authored
llvm-svn: 122963
-
Rafael Espindola authored
Patch by Richard Simth. llvm-svn: 122962
-
Benjamin Kramer authored
This happens when we take the (non-constant) length from a malloc. llvm-svn: 122961
-
Benjamin Kramer authored
llvm-svn: 122960
-
Benjamin Kramer authored
InstCombine: If we call llvm.objectsize on a malloc call we can replace it with the size passed to malloc. llvm-svn: 122959
-
Benjamin Kramer authored
llvm-svn: 122958
-
Benjamin Kramer authored
llvm-svn: 122957
-
Roman Divacky authored
Fix the width and align of bool type on Darwin to be 32bits while keeping it 8 everywhere else. Change the definition of va_list to default to SV4 ABI one and let darwin subtarget override this. Both changes submitted by Nathan Whitehorn and reviewed by Rafael Espindola. llvm-svn: 122956
-
Evan Cheng authored
The theory is it's still faster than a pair of movq / a quad of movl. This will probably hurt older chips like P4 but should run faster on current and future Intel processors. rdar://8817010 llvm-svn: 122955
-
Chris Lattner authored
llvm-svn: 122954
-
Chris Lattner authored
llvm-svn: 122953
-
Evan Cheng authored
etc. takes an option OptSize. If OptSize is true, it would return the inline limit for functions with attribute OptSize. llvm-svn: 122952
-
Chandler Carruth authored
llvm-svn: 122951
-
Chris Lattner authored
ret i64 ptrtoint (i8* getelementptr ([1000 x i8]* @X, i64 1, i64 sub (i64 0, i64 ptrtoint ([1000 x i8]* @X to i64))) to i64) to "ret i64 1000". This allows us to correctly compute the trip count on a loop in PR8883, which occurs with std::fill on a char array. This allows us to transform it into a memset with a constant size. llvm-svn: 122950
-
Evan Cheng authored
llvm-svn: 122949
-
Michael J. Spencer authored
llvm-svn: 122948
-
Michael J. Spencer authored
llvm-svn: 122947
-
-
Cameron Zwarich authored
OptimizeInst() so that they can be used on a worklist instruction. llvm-svn: 122945
-
Cameron Zwarich authored
llvm-svn: 122944
-
Cameron Zwarich authored
into a separate function, so that it can be called from a loop using a worklist rather than a loop traversing a whole basic block. llvm-svn: 122943
-
John McCall authored
The initial TreeTransform is a cop-out, but it's more-or-less equivalent to what we were doing before, or rather what we're doing now and might eventually stop doing in favor of using this type. I am simultaneously intrigued by the possibilities of rebuilding a dependent Attri llvm-svn: 122942
-
Jakob Stoklund Olesen authored
llvm-svn: 122941
-
Jakob Stoklund Olesen authored
Simplify RALinScan::DowngradeRegister with TRI::getOverlaps while we are there. llvm-svn: 122940
-
Jakob Stoklund Olesen authored
This pass precomputes CFG block frequency information that can be used by the register allocator to find optimal spill code placement. Given an interference pattern, placeSpills() will compute which basic blocks should have the current variable enter or exit in a register, and which blocks prefer the stack. The algorithm is ready to consume block frequencies from profiling data, but for now it gets by with the static estimates used for spill weights. This is a work in progress and still not hooked up to RegAllocGreedy. llvm-svn: 122938
-
Bill Wendling authored
llvm-svn: 122937
-