- Jun 28, 2010
-
-
Chris Lattner authored
llvm-svn: 107076
-
Greg Clayton authored
intelligently. The four name types we currently have are: eFunctionNameTypeFull = (1 << 1), // The function name. // For C this is the same as just the name of the function // For C++ this is the demangled version of the mangled name. // For ObjC this is the full function signature with the + or // - and the square brackets and the class and selector eFunctionNameTypeBase = (1 << 2), // The function name only, no namespaces or arguments and no class // methods or selectors will be searched. eFunctionNameTypeMethod = (1 << 3), // Find function by method name (C++) with no namespace or arguments eFunctionNameTypeSelector = (1 << 4) // Find function by selector name (ObjC) names this allows much more flexibility when setting breakoints: (lldb) breakpoint set --name main --basename (lldb) breakpoint set --name main --fullname (lldb) breakpoint set --name main --method (lldb) breakpoint set --name main --selector The default: (lldb) breakpoint set --name main will inspect the name "main" and look for any parens, or if the name starts with "-[" or "+[" and if any are found then a full name search will happen. Else a basename search will be the default. Fixed some command option structures so not all options are required when they shouldn't be. Cleaned up the breakpoint output summary. Made the "image lookup --address <addr>" output much more verbose so it shows all the important symbol context results. Added a GetDescription method to many of the SymbolContext objects for the more verbose output. llvm-svn: 107075
-
Dan Gohman authored
llvm-svn: 107074
-
Jim Grosbach authored
llvm-svn: 107073
-
Dan Gohman authored
code in unreachable blocks, which have have use-def cycles. This fixes PR7514. llvm-svn: 107071
-
Bob Wilson authored
llvm-svn: 107070
-
Bob Wilson authored
llvm-svn: 107068
-
Bill Wendling authored
llvm-svn: 107067
-
Johnny Chen authored
shell and issuing 'help' would hang (was actually infinitely looping). llvm-svn: 107066
-
Devang Patel authored
llvm-svn: 107065
-
Ted Kremenek authored
llvm-svn: 107064
-
Ted Kremenek authored
Don't crash in InitializePreprocessor() when there is no valid PTHManager. Fixes <rdar://problem/8098441>. llvm-svn: 107061
-
Jim Grosbach authored
llvm-svn: 107060
-
Devang Patel authored
llvm-svn: 107059
-
Dale Johannesen authored
llvm-svn: 107052
-
Chris Lattner authored
llvm-svn: 107050
-
Jakob Stoklund Olesen authored
llvm-svn: 107049
-
Chris Lattner authored
pass/return structs of float/int as float/i32 instead of double/i64 to make the code generated for ABI cleaner. Passing in the low part of a double is the same as passing in a float. For example, we now compile: struct DeclGroup { float NumDecls; }; float foo(DeclGroup D); void bar(DeclGroup *D) { foo(*D); } into: %struct.DeclGroup = type { float } define void @_Z3barP9DeclGroup(%struct.DeclGroup* %D) nounwind { entry: %D.addr = alloca %struct.DeclGroup*, align 8 ; <%struct.DeclGroup**> [#uses=2] %agg.tmp = alloca %struct.DeclGroup, align 4 ; <%struct.DeclGroup*> [#uses=2] store %struct.DeclGroup* %D, %struct.DeclGroup** %D.addr %tmp = load %struct.DeclGroup** %D.addr ; <%struct.DeclGroup*> [#uses=1] %tmp1 = bitcast %struct.DeclGroup* %agg.tmp to i8* ; <i8*> [#uses=1] %tmp2 = bitcast %struct.DeclGroup* %tmp to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp1, i8* %tmp2, i64 4, i32 4, i1 false) %coerce.dive = getelementptr %struct.DeclGroup* %agg.tmp, i32 0, i32 0 ; <float*> [#uses=1] %0 = load float* %coerce.dive, align 1 ; <float> [#uses=1] %call = call float @_Z3foo9DeclGroup(float %0) ; <float> [#uses=0] ret void } instead of: %struct.DeclGroup = type { float } define void @_Z3barP9DeclGroup(%struct.DeclGroup* %D) nounwind { entry: %D.addr = alloca %struct.DeclGroup*, align 8 ; <%struct.DeclGroup**> [#uses=2] %agg.tmp = alloca %struct.DeclGroup, align 4 ; <%struct.DeclGroup*> [#uses=2] %tmp3 = alloca double ; <double*> [#uses=2] store %struct.DeclGroup* %D, %struct.DeclGroup** %D.addr %tmp = load %struct.DeclGroup** %D.addr ; <%struct.DeclGroup*> [#uses=1] %tmp1 = bitcast %struct.DeclGroup* %agg.tmp to i8* ; <i8*> [#uses=1] %tmp2 = bitcast %struct.DeclGroup* %tmp to i8* ; <i8*> [#uses=1] call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp1, i8* %tmp2, i64 4, i32 4, i1 false) %coerce.dive = getelementptr %struct.DeclGroup* %agg.tmp, i32 0, i32 0 ; <float*> [#uses=1] %0 = bitcast double* %tmp3 to float* ; <float*> [#uses=1] %1 = load float* %coerce.dive ; <float> [#uses=1] store float %1, float* %0, align 1 %2 = load double* %tmp3 ; <double> [#uses=1] %call = call float @_Z3foo9DeclGroup(double %2) ; <float> [#uses=0] ret void } which is this machine code (at -O0): __Z3barP9DeclGroup: subq $24, %rsp movq %rdi, 16(%rsp) movq 16(%rsp), %rdi leaq 8(%rsp), %rax movl (%rdi), %ecx movl %ecx, (%rax) movss 8(%rsp), %xmm0 callq __Z3foo9DeclGroup addq $24, %rsp ret vs this: __Z3barP9DeclGroup: subq $24, %rsp movq %rdi, 16(%rsp) movq 16(%rsp), %rdi leaq 8(%rsp), %rax movl (%rdi), %ecx movl %ecx, (%rax) movss 8(%rsp), %xmm0 movss %xmm0, (%rsp) movsd (%rsp), %xmm0 callq __Z3foo9DeclGroup addq $24, %rsp ret At -O3, it is the difference between this now: __Z3barP9DeclGroup: movss (%rdi), %xmm0 jmp __Z3foo9DeclGroup # TAILCALL vs this before: __Z3barP9DeclGroup: movl (%rdi), %eax movd %rax, %xmm0 jmp __Z3foo9DeclGroup # TAILCALL llvm-svn: 107048
-
Fariborz Jahanian authored
llvm-svn: 107047
-
Jakob Stoklund Olesen authored
you would expect. Don't assert on that case, just give up. This fixes PR7513. llvm-svn: 107046
-
Jakob Stoklund Olesen authored
llvm-svn: 107045
-
Fariborz Jahanian authored
name. Fixes radar 7860965. llvm-svn: 107044
-
Jakob Stoklund Olesen authored
When an instruction has tied operands and physreg defines, we must take extra care that the tied operands conflict with neither physreg defs nor uses. The special treatment is given to inline asm and instructions with tied operands / early clobbers and physreg defines. This fixes PR7509. llvm-svn: 107043
-
Eric Christopher authored
llvm-svn: 107042
-
Chris Lattner authored
llvm-svn: 107040
-
Eric Christopher authored
Remove library check and regenerate configure. llvm-svn: 107028
-
Devang Patel authored
Radar 8122864. llvm-svn: 107027
-
Devang Patel authored
llvm-svn: 107025
-
Daniel Dunbar authored
llvm-svn: 107024
-
Howard Hinnant authored
llvm-svn: 107022
-
Rafael Espindola authored
llvm-svn: 107021
-
Chris Lattner authored
I broke negate of FP values. llvm-svn: 107019
-
Chris Lattner authored
llvm-svn: 107018
-
Gabor Greif authored
llvm-svn: 107017
-
Gabor Greif authored
llvm-svn: 107016
-
Gabor Greif authored
llvm-svn: 107015
-
Gabor Greif authored
llvm-svn: 107014
-
Dan Gohman authored
interprocedurally. Note that as of this writing, existing alias analysis passes are not prepared to be used interprocedurally. llvm-svn: 107013
-
Dan Gohman authored
llvm-svn: 107012
-
Dan Gohman authored
name, specifically the "lib" prefix. llvm-svn: 107011
-