| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
There is only one legitimate use remaining, in addIntervalsForSpills().
All other calls to hasPHIKill() are only used to update PHIKill flags.
The addIntervalsForSpills() function is part of the old spilling
framework, only used by linearscan.
llvm-svn: 139783
|
| |
|
|
|
|
|
|
|
|
|
| |
Instead, let HasOtherReachingDefs() test for defs in B that overlap any
phi-defs in A as well. This test is slightly different, but almost
identical.
A perfectly precise test would only check those phi-defs in A that are
reachable from AValNo.
llvm-svn: 139782
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The source live range is recomputed using shrinkToUses() which does
handle phis correctly. The hasPHIKill() condition was relevant in the
old days when ReMaterializeTrivialDef() tried to recompute the live
range itself.
The shrinkToUses() function will mark the original def as dead when no
more uses and phi kills remain. It is then removed by
runOnMachineFunction().
llvm-svn: 139781
|
| |
|
|
|
|
|
|
|
|
|
| |
It is conservatively correct to keep the hasPHIKill flags, even after
deleting PHI-defs.
The calculation can be very expensive after taildup has created a
quadratic number of indirectbr edges in the CFG, and the hasPHIKill flag
isn't used for anything after RenumberValues().
llvm-svn: 139780
|
| |
|
|
|
|
| |
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
llvm-svn: 139779
|
| |
|
|
|
|
| |
Thanks Nick!
llvm-svn: 139778
|
| |
|
|
| |
llvm-svn: 139777
|
| |
|
|
| |
llvm-svn: 139776
|
| |
|
|
| |
llvm-svn: 139775
|
| |
|
|
| |
llvm-svn: 139774
|
| |
|
|
| |
llvm-svn: 139773
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to execute expressions even in the absence of a process.
This allows expressions to run in situations where the
target cannot run -- e.g., to perform calculations based
on type information, or to inspect a binary's static
data.
This modification touches the following files:
lldb-private-enumerations.h
Introduce a new enum specifying the policy for
processing an expression. Some expressions should
always be JITted, for example if they are functions
that will be used over and over again. Some
expressions should always be interpreted, for
example if the target is unsafe to run. For most,
it is acceptable to JIT them, but interpretation
is preferable when possible.
Target.[h,cpp]
Have EvaluateExpression now accept the new enum.
ClangExpressionDeclMap.[cpp,h]
Add support for the IR interpreter and also make
the ClangExpressionDeclMap more robust in the
absence of a process.
ClangFunction.[cpp,h]
Add support for the new enum.
IRInterpreter.[cpp,h]
New implementation.
ClangUserExpression.[cpp,h]
Add support for the new enum, and for running
expressions in the absence of a process.
ClangExpression.h
Remove references to the old DWARF-based method
of evaluating expressions, because it has been
superseded for now.
ClangUtilityFunction.[cpp,h]
Add support for the new enum.
ClangExpressionParser.[cpp,h]
Add support for the new enum, remove references
to DWARF, and add support for checking whether
the expression could be evaluated statically.
IRForTarget.[h,cpp]
Add support for the new enum, and add utility
functions to support the interpreter.
IRToDWARF.cpp
Removed
CommandObjectExpression.cpp
Remove references to the obsolete -i option.
Process.cpp
Modify calls to ClangUserExpression::Evaluate
to pass the correct enum (for dlopen/dlclose)
SBValue.cpp
Add support for the new enum.
SBFrame.cpp
Add support for he new enum.
BreakpointOptions.cpp
Add support for the new enum.
llvm-svn: 139772
|
| |
|
|
|
|
| |
The llvm-dwarfdump output isn't very verbose yet.
llvm-svn: 139771
|
| |
|
|
| |
llvm-svn: 139770
|
| |
|
|
|
|
| |
we don't need to.
llvm-svn: 139769
|
| |
|
|
|
|
| |
Spotted by inspection.
llvm-svn: 139768
|
| |
|
|
|
|
|
|
|
|
| |
process
the passed in (MachException::Data &)exc first before possible reassignment of the
member m_stop_exception with exc. This allows lldb to stop at the watchpoint of
a simple test program.
llvm-svn: 139767
|
| |
|
|
|
|
| |
architecture, and move that but of functionality into CompleteAttach.
llvm-svn: 139766
|
| |
|
|
|
|
|
| |
An improper SlotIndex->VNInfo lookup was leading to unsafe copy removal.
Fixes PR10920 401.bzip2 miscompile with no IV rewrite.
llvm-svn: 139765
|
| |
|
|
|
|
| |
stop. It's not very useful to return the prompt in mid-attach, and it makes reporting the result of the attach hard to do.
llvm-svn: 139764
|
| |
|
|
|
|
|
|
|
| |
of SourceLocations (commit 2 of ?):
- Modify all PathDiagnosticLocation constructors that take Stmt to also requre LocationContext.
- Add a constructor which should be used in case there is no valid statement/location (it will grab the location of the enclosing function).
llvm-svn: 139763
|
| |
|
|
|
|
| |
Core. Also make the constructors explicit.
llvm-svn: 139762
|
| |
|
|
|
|
| |
Core. Also make the constructors explicit.
llvm-svn: 139761
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
UnwindPlan for unwinding from the first instruction of an otherwise
unknown function call (GetUnwindPlanArchitectureDefaultAtFunctionEntry()).
Update RegisterContextLLDB::GetFullUnwindPlanForFrame() to detect the
case of a frame 0 at address 0x0 which indicates that we jumped through
a NULL function pointer. Use the ABI's FunctionEntryUnwindPlan to
find the caller frame.
These changes make it so lldb can identify the calling frame correctly
in code like
int main ()
{
void (*f)(void) = 0;
f();
}
llvm-svn: 139760
|
| |
|
|
| |
llvm-svn: 139759
|
| |
|
|
|
|
| |
Issue spotted in -debug output. I can't think of any practical effects at the moment, but it might matter if we start doing more aggressive alias analysis in CodeGen.
llvm-svn: 139758
|
| |
|
|
| |
llvm-svn: 139757
|
| |
|
|
| |
llvm-svn: 139756
|
| |
|
|
|
|
|
| |
will ignore the erasedOnReboot option, and properly escape the
backslash in "C:\TEMP". Thanks to Aaron and Francois.
llvm-svn: 139755
|
| |
|
|
| |
llvm-svn: 139754
|
| |
|
|
| |
llvm-svn: 139753
|
| |
|
|
| |
llvm-svn: 139752
|
| |
|
|
| |
llvm-svn: 139751
|
| |
|
|
| |
llvm-svn: 139750
|
| |
|
|
| |
llvm-svn: 139748
|
| |
|
|
| |
llvm-svn: 139747
|
| |
|
|
|
|
| |
work correctly.
llvm-svn: 139746
|
| |
|
|
|
|
| |
non-exported macro, for real this time
llvm-svn: 139745
|
| |
|
|
|
|
| |
Patch by Joakim Johansson!
llvm-svn: 139743
|
| |
|
|
| |
llvm-svn: 139742
|
| |
|
|
| |
llvm-svn: 139741
|
| |
|
|
| |
llvm-svn: 139740
|
| |
|
|
| |
llvm-svn: 139739
|
| |
|
|
|
|
| |
architectures we try to build for.
llvm-svn: 139738
|
| |
|
|
| |
llvm-svn: 139736
|
| |
|
|
| |
llvm-svn: 139735
|
| |
|
|
| |
llvm-svn: 139734
|
| |
|
|
| |
llvm-svn: 139733
|
| |
|
|
|
|
|
|
| |
is not available.
Ported from LLDB.
llvm-svn: 139732
|
| |
|
|
|
|
| |
dealing with non-exported macros
llvm-svn: 139731
|