Commit Graph

109029 Commits

Author SHA1 Message Date
Akira Hatanaka 27292638bd Set mayLoad or mayStore flags for SC and LL in order to prevent LICM from
moving them out of the loop. Previously, stores and loads to a stack frame
object were inserted to accomplish this. Remove the code that was needed to do
this. Patch by Sasa Stankovic.

llvm-svn: 135415
2011-07-18 18:52:12 +00:00
Owen Anderson 64d53620aa Re-apply r135319 with a fix for the constant island pass.
Original Log: Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode.  Update the ARM disassembler for this change.

llvm-svn: 135414
2011-07-18 18:50:52 +00:00
Jakob Stoklund Olesen c45d38e14a Fix a crash when building 177.mesa for armv6.
When splitting a live range immediately before an LDR_POST instruction
that redefines the address register, make sure to use the correct value
number in leaveIntvBefore.

We need the value number entering the instruction.

<rdar://problem/9793765>

llvm-svn: 135413
2011-07-18 18:47:13 +00:00
Andrew Trick 494c549ebd indvars: Added verification that LFTR and other indvars goodness does
not interfere with BackedgeTakenCount computation.

llvm-svn: 135412
2011-07-18 18:44:20 +00:00
Alexis Hunt 397d787642 Given that __underlying_type is now available in clang, implement
std::underlying_type.

llvm-svn: 135410
2011-07-18 18:37:21 +00:00
Andrew Trick a27d8b183a indvars: Added isHighCostExpansion. Avoid generating extra ops in the
preheader for the sole purpose of LFTR, since LFTR itself is usually not
a clear optimization.

llvm-svn: 135409
2011-07-18 18:21:35 +00:00
Bruno Cardoso Lopes 50c1d9816c Be more smart with VCVTSS2SD. Also place the patterns close to the
definitions.

llvm-svn: 135407
2011-07-18 18:11:25 +00:00
Johnny Chen 482ad087ef Cleaned up the interface file for SBTarget.
llvm-svn: 135405
2011-07-18 17:53:20 +00:00
Bruno Cardoso Lopes 4208cace5f Add AVX 128-bit sqrt versions
llvm-svn: 135404
2011-07-18 17:51:40 +00:00
Akira Hatanaka 8b98515c29 Change destination register operands of SC instructions so that unique
virtual registers are used. 

llvm-svn: 135403
2011-07-18 17:44:27 +00:00
Alexis Hunt 106b4924e2 Thanks to Chandler for reminding me to update the documentation for the
__underlying_type feature.

llvm-svn: 135402
2011-07-18 17:22:33 +00:00
Alexis Hunt c6d1d946e7 Remember to add a has_feature macro for __underlying_type now that it is
correctly impelmented

llvm-svn: 135401
2011-07-18 17:08:00 +00:00
Alexis Hunt f3ff971561 Give A an explicitly non-throwing destructor so that B's destructor is
itself non-throwing.  Since nested_exception's destructor is
non-throwing, if B's destructor is not, this causes an error in C++03
mode due to the overriding function having a more lax specification.
This did not occur in C++0x mode as A's destructor was implicitly
non-throwing.

llvm-svn: 135400
2011-07-18 17:07:53 +00:00
Jakob Stoklund Olesen abcfdcea5c Intern all RecTy subclass instances to avoid duplicates.
Make all of the RecTy constructors private, and use get() factory
methods instead. Return singleton instances when it makes sense.

ListTy instance pointers are stored in the element RecTy instance.

BitsRecTy instance pointers, one per length, are stored in a static vector.

Also unique DefInit instances. A Record has a unique DefInit which
has a unique RecordRecTy instance.

This saves some 200k-300k RecTy allocations when parsing ARM.td. It
reduces TableGen's heap usage by almost 50%.

llvm-svn: 135399
2011-07-18 17:02:57 +00:00
Jeffrey Yasskin d2af962eee Define DiagnosticBuilder<<APValue so it's easy to include APValues in
diagnostics.

llvm-svn: 135398
2011-07-18 16:43:53 +00:00
Howard Hinnant 4af8869934 Update by Marshall Clow
llvm-svn: 135397
2011-07-18 16:38:32 +00:00
Chris Lattner 71fbd6b228 various cleanups noticed by Frits
llvm-svn: 135396
2011-07-18 16:35:57 +00:00
Enrico Granata 03f16a09bf Runtime errors in Python scripts were not being shown; this fix makes them print out to ease correcting errors
llvm-svn: 135395
2011-07-18 16:24:10 +00:00
Chris Lattner e5f440204b remove pasto
llvm-svn: 135394
2011-07-18 16:04:11 +00:00
Howard Hinnant e3163f5ae3 http://llvm.org/bugs/show_bug.cgi?id=10390
llvm-svn: 135393
2011-07-18 15:51:59 +00:00
Frits van Bommel 1b3ee75077 Hopefully fix some GCC-based buildbots. GCC apparently decays the array to a pointer here before overload resolution, so construct with an explicit length instead.
llvm-svn: 135391
2011-07-18 12:31:03 +00:00
Frits van Bommel 717d7edd3e Migrate LLVM and Clang to use the new makeArrayRef(...) functions where previously explicit non-default constructors were used.
Mostly mechanical with some manual reformatting.

llvm-svn: 135390
2011-07-18 12:00:32 +00:00
Frits van Bommel 23db45e99c Introduce the 'makeArrayRef(...)' family of functions, which fills a similar role for ArrayRef<> as std::make_pair() fills for std::pair<>: they return the right instantiation of ArrayRef<T> based on the types of the parameters.
They mostly mirror the ArrayRef constructors, with two exceptions:
 * There's no function mirroring the default constructor because it wouldn't have any parameters to deduce the right ArrayRef<T> from.
 * There's an explicit SmallVector<T> overload in addition to the SmallVectorImpl<T> overload. Without it, the single-element overload would try to create an ArrayRef<Smallvector<T> > because it's a better match according to the overloading rules. (And both overloads are used in the current tree, so neither is redundant)

llvm-svn: 135389
2011-07-18 11:58:53 +00:00
NAKAMURA Takumi a185c78d4d lib/Headers/mm_malloc.h: Use __mingw_aligned_malloc() in _mm_malloc() on mingw.
By default, mingw does not have _mm_alloc() nor _aligned_malloc().

llvm-svn: 135388
2011-07-18 11:13:50 +00:00
Tobias Grosser 6121eb346f www: Add link to buildbot into main menu
llvm-svn: 135387
2011-07-18 11:00:13 +00:00
Tobias Grosser d3ffabfc7a www: Buildbot set up
llvm-svn: 135385
2011-07-18 09:53:35 +00:00
Tobias Grosser 55927aa400 Use llvm::*Type without const
llvm-svn: 135384
2011-07-18 09:53:32 +00:00
Argyrios Kyrtzidis 91c62bfc03 [arcmt] When a NSData's 'bytes' family of methods are used on a local var,
add __attribute__((objc_precise_lifetime)) to make sure that the object
(and its data) will not get released before the var goes out-of-scope.

rdar://9206226

llvm-svn: 135382
2011-07-18 07:44:50 +00:00
Argyrios Kyrtzidis 73a0d32df5 [arcmt] NSInvocation's [get/set]ReturnValue and [get/set]Argument are only safe
with __unsafe_unretained parameters. Emit error for strong/weak ones. rdar://9206226

llvm-svn: 135381
2011-07-18 07:44:45 +00:00
Nick Lewycky ba4cc01a1f Don't crash when codegen'ing an empty redecl of a function in C99 mode, when
neither was inline. Fixes bug introduced in r135377.

llvm-svn: 135380
2011-07-18 07:11:55 +00:00
Nick Lewycky d8921f939c Delete empty unused file.
llvm-svn: 135379
2011-07-18 05:54:06 +00:00
Jakob Stoklund Olesen c0dd3da9c5 Fix PR10387.
When trying to rematerialize a value before an instruction that has an
early-clobber redefine of the virtual register, make sure to look up the
correct value number.

Early-clobber defs are moved one slot back, so getBaseIndex is needed to
find the used value number.

Bugpoint was unable to reduce the test case for this, see PR10388.

llvm-svn: 135378
2011-07-18 05:31:59 +00:00
Nick Lewycky 26da4ddfa6 In C99, emit an inline function when encountering an extern redeclaration.
Fixes PR10233!

llvm-svn: 135377
2011-07-18 05:26:13 +00:00
Chris Lattner 14b3b4df6f document this api change.
llvm-svn: 135376
2011-07-18 04:56:02 +00:00
Chris Lattner 229907cd11 land David Blaikie's patch to de-constify Type, with a few tweaks.
llvm-svn: 135375
2011-07-18 04:54:35 +00:00
Chris Lattner 805d09459d update for recent api changes. I have a hard time believing that this is actually a useful example.
llvm-svn: 135374
2011-07-18 04:52:58 +00:00
Chris Lattner 6b8eb8cd71 update this to build with a recent IRBuilder change and de-constify types.
llvm-svn: 135373
2011-07-18 04:52:09 +00:00
Chris Lattner 2192fe50da de-constify llvm::Type, patch by David Blaikie!
llvm-svn: 135370
2011-07-18 04:24:23 +00:00
Evan Cheng 2cf16c90f9 LLC doesn't need to create MCInstrInfo's.
llvm-svn: 135369
2011-07-18 04:16:27 +00:00
Chris Lattner 83cfc7c03a Use the new llvm::TinyPtrVector class, which implements exactly what
ShadowMapEntry was.

llvm-svn: 135368
2011-07-18 01:54:02 +00:00
Chris Lattner 8e8d674d79 add iteration support to TinyPtrVector for clang's use.
llvm-svn: 135367
2011-07-18 01:53:11 +00:00
Chris Lattner 7b70bef7c8 fix a warning in TinyPtrVector, adopt it in SSAUpdater, saving some
mallocs.

llvm-svn: 135366
2011-07-18 01:43:58 +00:00
Chris Lattner a8680dced2 introduce a new TinyPtrVector class.
llvm-svn: 135365
2011-07-18 01:40:02 +00:00
Benjamin Kramer 2b8cb92209 Simplify & microoptimize code. No intended functionality change.
llvm-svn: 135364
2011-07-18 00:00:20 +00:00
Greg Clayton 3a29bdbe9b Added a boolean to the pure virtual lldb_private::Process::CanDebug(...)
method so process plug-ins that are requested by name can answer yes when
asked if they can debug a target that might not have any file in the target.

Modified the ConnectionFileDescriptor to have both a read and a write file
descriptor. This allows us to support UDP, and eventually will allow us to
support pipes. The ConnectionFileDescriptor class also has a file descriptor
type for each of the read and write file decriptors so we can use the correct
read/recv/recvfrom call when reading, or write/send/sendto for writing.

Finished up an initial implementation of UDP where you can use the "udp://"
URL to specify a host and port to connect to:

(lldb) process connect --plugin kdp-remote udp://host:41139

This will cause a ConnectionFileDescriptor to be created that can send UDP
packets to "host:41139", and it will also bind to a localhost port that can
be given out to receive the connectionless UDP reply. 

Added the ability to get to the IPv4/IPv6 socket port number from a 
ConnectionFileDescriptor instance if either file descriptor is a socket.

The ProcessKDP can now successfully connect to a remote kernel and detach
using the above "processs connect" command!!! So far we have the following
packets working:
    KDP_CONNECT
    KDP_DISCONNECT
    KDP_HOSTINFO
    KDP_VERSION
    KDP_REATTACH

Now that the packets are working, adding new packets will go very quickly.

llvm-svn: 135363
2011-07-17 20:36:25 +00:00
Nadav Rotem 76d51c6c89 Minor code cleanups
llvm-svn: 135362
2011-07-17 19:05:00 +00:00
Oscar Fuentes 2d48f6537d Fix CMake build on Solaris
When building LLVM/Clang on Solaris. The generated makefiles would
have an extraneous semi-colon character in them prior to this change
due to the way the 'CMAKE_CXX_FLAGS' variable was defined. Simply
adjusting the definition by moving the current CMAKE_CXX_FLAGS value
within the quotes solves the problem.

Patch by Art Haas!

llvm-svn: 135361
2011-07-17 17:35:15 +00:00
Chris Lattner d04e32d308 tidy up
llvm-svn: 135360
2011-07-17 06:01:30 +00:00
Chandler Carruth 7cf5a37605 Revert r135217, which wasn't the correct fix for PR10358. With this
patch, we actually move the state-machine for the value set backwards
one step. This can pretty easily lead to infinite loops where we
continually try to propagate a bit, succeed for one iteration, but then
back up because we find an uninitialized use.

A reduced test case from PR10379 is included.

llvm-svn: 135359
2011-07-16 22:27:02 +00:00
Benjamin Kramer a7606b993c Silence compiler warnings.
llvm-svn: 135358
2011-07-16 22:26:27 +00:00