| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
care of
FIXME: Override "preferred align" for double and long long for ARM apcs-gnu ABI.
Also part of rdar://9802874
llvm-svn: 135940
|
|
|
|
| |
llvm-svn: 135939
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to iterate through an SBValue instance by treating it as the head of a linked
list. API program must provide two args to the linked_list_iter() method:
the first being the child member name which points to the next item on the list
and the second being a Python function which an SBValue (for the next item) and
returns True if end of list is reached, otherwise it returns False.
For example, suppose we have the following sample program.
#include <stdio.h>
class Task {
public:
int id;
Task *next;
Task(int i, Task *n):
id(i),
next(n)
{}
};
int main (int argc, char const *argv[])
{
Task *task_head = new Task(-1, NULL);
Task *task1 = new Task(1, NULL);
Task *task2 = new Task(2, NULL);
Task *task3 = new Task(3, NULL); // Orphaned.
Task *task4 = new Task(4, NULL);
Task *task5 = new Task(5, NULL);
task_head->next = task1;
task1->next = task2;
task2->next = task4;
task4->next = task5;
int total = 0; // Break at this line
Task *t = task_head;
while (t != NULL) {
if (t->id >= 0)
++total;
t = t->next;
}
printf("We have a total number of %d tasks\n", total);
return 0;
}
The test program produces the following output while exercising the linked_list_iter() SBVAlue API:
task_head:
TypeName -> Task *
ByteSize -> 8
NumChildren -> 2
Value -> 0x0000000106400380
ValueType -> local_variable
Summary -> None
IsPointerType -> True
Location -> 0x00007fff65f06e60
(Task *) next = 0x0000000106400390
(int) id = 1
(Task *) next = 0x00000001064003a0
(Task *) next = 0x00000001064003a0
(int) id = 2
(Task *) next = 0x00000001064003c0
(Task *) next = 0x00000001064003c0
(int) id = 4
(Task *) next = 0x00000001064003d0
(Task *) next = 0x00000001064003d0
(int) id = 5
(Task *) next = 0x0000000000000000
llvm-svn: 135938
|
|
|
|
|
|
| |
MachineBlockFrequencyInfo.
llvm-svn: 135937
|
|
|
|
|
|
|
|
|
| |
where the first diagnostic occurred.
Useful if the main file is not relevant (like with cling).
By Vassil Vassilev.
llvm-svn: 135936
|
|
|
|
| |
llvm-svn: 135935
|
|
|
|
|
|
| |
ABI.
llvm-svn: 135934
|
|
|
|
|
|
| |
specified in the docs up to now
llvm-svn: 135933
|
|
|
|
|
|
| |
conversion operators, from Jonathan Sauer.
llvm-svn: 135932
|
|
|
|
| |
llvm-svn: 135930
|
|
|
|
| |
llvm-svn: 135927
|
|
|
|
| |
llvm-svn: 135924
|
|
|
|
| |
llvm-svn: 135923
|
|
|
|
|
|
|
|
|
|
|
| |
unwind encoding for that function. This simply crawls through the prolog looking
for machine instrs marked as "frame setup". It can calculate from these what the
compact unwind should look like.
This is currently disabled because of needed linker support. But initial tests
look good.
llvm-svn: 135922
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The .local, .hidden, .internal, and .protected are not legal for all supported
file formats (in particular, they're invalid for MachO). Move the parsing for
them into the ELF assembly parser since that's the format they're for.
Similarly, .weak is used by COFF and ELF, but not MachO, so move the parsing
to the COFF and ELF asm parsers. Previously, using any of these directives
on Darwin would result in an assertion failure in the parser; now we get
a diagnostic as we should.
rdar://9827089
llvm-svn: 135921
|
|
|
|
|
|
| |
a cursor reference, from Erik Verbruggen!
llvm-svn: 135920
|
|
|
|
|
|
| |
Patch by arrowdodger!
llvm-svn: 135919
|
|
|
|
|
|
| |
Patch by arrowdodger!
llvm-svn: 135918
|
|
|
|
| |
llvm-svn: 135917
|
|
|
|
|
|
|
|
| |
added a final newline to fooSynthProvider.py
new option to automatically save user input in InputReaderEZ
checking for NULL pointers in several new places
llvm-svn: 135916
|
|
|
|
| |
llvm-svn: 135915
|
|
|
|
|
|
|
|
| |
FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.
llvm-svn: 135914
|
|
|
|
| |
llvm-svn: 135913
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mechanism already exists, but the RS_Split2 stage makes it clearer.
When live range splitting creates ranges that may not be making
progress, they are marked RS_Split2 instead of RS_New. These ranges may
be split again, but only in a way that can be proven to make progress.
For local ranges, that means they must be split into ranges used by
strictly fewer instructions.
For global ranges, region splitting is bypassed and the RS_Split2
ranges go straight to per-block splitting.
llvm-svn: 135912
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stage is used to control where a live range is going, not where it
is coming from. Live ranges created by splitting will usually be marked
RS_New, but some are marked RS_Spill to avoid wasting time trying to
split them again.
The old RS_Global and RS_Local stages are merged - they are really the
same thing for local and global live ranges.
llvm-svn: 135911
|
|
|
|
| |
llvm-svn: 135910
|
|
|
|
| |
llvm-svn: 135909
|
|
|
|
|
|
| |
tablegenning to all libraries and executables.
llvm-svn: 135908
|
|
|
|
|
|
| |
instructions of Visual Studio. Thanks to Andreas Bittel to point it out.
llvm-svn: 135907
|
|
|
|
| |
llvm-svn: 135906
|
|
|
|
|
|
| |
ConstantStruct and ConstantVector.
llvm-svn: 135905
|
|
|
|
| |
llvm-svn: 135904
|
|
|
|
| |
llvm-svn: 135897
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=10461
llvm-svn: 135893
|
|
|
|
| |
llvm-svn: 135892
|
|
|
|
|
|
|
|
|
| |
declared in protocol in the class qualified by the
protocol have type conflicts. To reduce amount of
noise, this is done when class is implemented.
// rdar://9352731
llvm-svn: 135890
|
|
|
|
| |
llvm-svn: 135889
|
|
|
|
|
|
| |
to eliminate some casting.
llvm-svn: 135888
|
|
|
|
| |
llvm-svn: 135886
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes PR10463. A two-address instruction with an <undef> use
operand was incorrectly rewritten so the def and use no longer used the
same register, violating the tie constraint.
Fix this by always rewriting <undef> operands with the register a def
operand would use.
llvm-svn: 135885
|
|
|
|
| |
llvm-svn: 135873
|
|
|
|
| |
llvm-svn: 135867
|
|
|
|
| |
llvm-svn: 135866
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- you can now define a Python class as a synthetic children producer for a type
the class must adhere to this "interface":
def __init__(self, valobj, dict):
def get_child_at_index(self, index):
def get_child_index(self, name):
then using type synth add -l className typeName
(e.g. type synth add -l fooSynthProvider foo)
(This is still WIP with lots to be added)
A small test case is available also as reference
llvm-svn: 135865
|
|
|
|
|
|
| |
building shared lib. Thanks to Ryuta Suzuki.
llvm-svn: 135864
|
|
|
|
|
|
| |
to avoid extraneous \n's.
llvm-svn: 135862
|
|
|
|
| |
llvm-svn: 135861
|
|
|
|
| |
llvm-svn: 135860
|
|
|
|
| |
llvm-svn: 135859
|
|
|
|
| |
llvm-svn: 135858
|