| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 123378
|
| |
|
|
| |
llvm-svn: 123377
|
| |
|
|
|
|
| |
Patch by arrowdodger!
llvm-svn: 123376
|
| |
|
|
|
|
| |
getting the base region. This makes the RemoveDeadBindings() correct.
llvm-svn: 123375
|
| |
|
|
|
|
|
| |
since the bindings are purged after they are set up. Need to investigate
RemoveDeadBindings algorithm.
llvm-svn: 123374
|
| |
|
|
|
|
| |
the comment I added): an extern weak global may have a null address.
llvm-svn: 123373
|
| |
|
|
|
|
|
|
| |
is "X != 0 -> X" when X is a boolean. This occurs a lot because of the way
llvm-gcc converts gcc's conditional expressions. Add this, and a few other
similar transforms for completeness.
llvm-svn: 123372
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by LLDB. Instead of being materialized into the input structure
passed to the expression, variables are left in place and pointers
to them are materialzied into the structure. Variables not resident
in memory (notably, registers) get temporary memory regions allocated
for them.
Persistent variables are the most complex part of this, because they
are made in various ways and there are different expectations about
their lifetime. Persistent variables now have flags indicating their
status and what the expectations for longevity are. They can be
marked as residing in target memory permanently -- this is the
default for result variables from expressions entered on the command
line and for explicitly declared persistent variables (but more on
that below). Other result variables have their memory freed.
Some major improvements resulting from this include being able to
properly take the address of variables, better and cleaner support
for functions that return references, and cleaner C++ support in
general. One problem that remains is the problem of explicitly
declared persistent variables; I have not yet implemented the code
that makes references to them into indirect references, so currently
materialization and dematerialization of these variables is broken.
llvm-svn: 123371
|
| |
|
|
| |
llvm-svn: 123370
|
| |
|
|
|
|
|
|
| |
in the right direction. It eliminated some hacks and will unblock codegen
work. But it's far from being done. It doesn't reject illegal expressions,
e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all.
llvm-svn: 123369
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a struct value to a symbolic index into array.
RegionStore can't actually reason about this,
so we were getting bogus warnings about loading
uninitialized values from the array. The solution
is invalidate the entire array when we cannot
represent the binding explicitly.
Fixes <rdar://problem/8848957>
llvm-svn: 123368
|
| |
|
|
|
|
| |
16 bytes for PR8969. Update all testcases accordingly.
llvm-svn: 123367
|
| |
|
|
| |
llvm-svn: 123364
|
| |
|
|
|
|
|
|
|
| |
and 'getBasePredecessor()' to 'getPredecessor()'.
Also remove a unneeded save-and-restore of
node builder's tag field.
llvm-svn: 123363
|
| |
|
|
|
|
| |
node builder's 'HasGeneratedNode' field.
llvm-svn: 123362
|
| |
|
|
|
|
|
| |
the node builder's "tag" ivar (which we would
like to remove).
llvm-svn: 123361
|
| |
|
|
|
|
| |
Fixes PR8967.
llvm-svn: 123360
|
| |
|
|
| |
llvm-svn: 123359
|
| |
|
|
| |
llvm-svn: 123358
|
| |
|
|
| |
llvm-svn: 123357
|
| |
|
|
|
|
| |
g_program_filespec for Free BSD port.
llvm-svn: 123356
|
| |
|
|
|
|
| |
g_program_filespec in the Host calls.
llvm-svn: 123355
|
| |
|
|
| |
llvm-svn: 123354
|
| |
|
|
|
|
|
|
| |
.code 32 if the TargetMachine's isThumb() boolean does not match. The correct
fix is to switch ARM subtargets at that point and is tracked by rdar://8856789
which is bigger task.
llvm-svn: 123353
|
| |
|
|
| |
llvm-svn: 123352
|
| |
|
|
| |
llvm-svn: 123351
|
| |
|
|
| |
llvm-svn: 123350
|
| |
|
|
| |
llvm-svn: 123349
|
| |
|
|
|
|
|
|
| |
matching of variadic template template parameters to template
arguments. This paragraph was the subject of ISO C++ committee
document N2555: Extending Variadic Template Template Parameters.
llvm-svn: 123348
|
| |
|
|
| |
llvm-svn: 123347
|
| |
|
|
|
|
| |
further on the associated testcase before aborting.
llvm-svn: 123346
|
| |
|
|
|
|
| |
PathV2::is_symlink.
llvm-svn: 123345
|
| |
|
|
| |
llvm-svn: 123344
|
| |
|
|
|
|
| |
bunch of duplicated checks for parameter pack/non-pack mismatches.
llvm-svn: 123343
|
| |
|
|
| |
llvm-svn: 123342
|
| |
|
|
| |
llvm-svn: 123341
|
| |
|
|
|
|
|
|
|
|
|
| |
that way, unfortunately. If you want to change them to work additively instead
of a one-variant-kind-per-symbolref, that's great and I completely agree it's
worth doing, but it really should be a separate patch. Until then, this isn't
correct."
So I am reverting this bit until a more opportune time.
llvm-svn: 123340
|
| |
|
|
|
|
| |
after all.
llvm-svn: 123339
|
| |
|
|
| |
llvm-svn: 123338
|
| |
|
|
| |
llvm-svn: 123337
|
| |
|
|
|
|
|
| |
(static_cast, dynamic_cast, reinterpret_cast, or const_cast) to
improve source-location information. Fixes PR8960.
llvm-svn: 123336
|
| |
|
|
|
|
| |
Make sure we don't crash in that case, but simply turn them into %noreg instead.
llvm-svn: 123335
|
| |
|
|
|
|
| |
It was leaving dangling pointers in the slot index maps.
llvm-svn: 123334
|
| |
|
|
| |
llvm-svn: 123333
|
| |
|
|
| |
llvm-svn: 123332
|
| |
|
|
|
|
|
| |
the proposed resolution to core isue 692. I'm not certain which way
we'll go on this one.
llvm-svn: 123331
|
| |
|
|
|
|
| |
The slot indexes must be monotonically increasing through the function.
llvm-svn: 123324
|
| |
|
|
| |
llvm-svn: 123323
|
| |
|
|
| |
llvm-svn: 123322
|
| |
|
|
|
|
| |
enum values we give to them. <rdar://problem/8823730>
llvm-svn: 123321
|