- Mar 07, 2012
-
-
Benjamin Kramer authored
This fixes a build failure in webkit. Copying all elements shouldn't be necessary, I'll look out for a better fix soon. llvm-svn: 152252
-
Sean Callanan authored
treat Objective-C ivar symbols as their own kind of symbol rather than lumping them in with generic "runtime" symbols. llvm-svn: 152251
-
Jim Ingham authored
When comparing a Thread against a ThreadSpec, don't fetch the Thread's Name or QueueName if the ThreadSpec doesn't specify them. llvm-svn: 152245
-
rdar://problem/10997402Greg Clayton authored
This fix really needed to happen as a previous fix I had submitted for calculating symbol sizes made many symbols appear to have zero size since the function that was calculating the symbol size was calling another function that would cause the calculation to happen again. This resulted in some symbols having zero size when they shouldn't. This could then cause infinite stack traces and many other side affects. llvm-svn: 152244
-
Chad Rosier authored
condition flags to CPSR. This allows us to simplify SelectCmp. Patch by Zonr Chang <zonr.xchg@gmail.com>. llvm-svn: 152243
-
Rafael Espindola authored
llvm-svn: 152242
-
Howard Hinnant authored
Change some smart_ptr == 0 to smart_ptr == nullptr. Fixes http://llvm.org/bugs/show_bug.cgi?id=12185. llvm-svn: 152240
-
Richard Trieu authored
llvm-svn: 152239
-
Tobias Grosser authored
llvm-svn: 152238
-
Tobias Grosser authored
llvm-svn: 152237
-
Tobias Grosser authored
llvm-svn: 152236
-
Tobias Grosser authored
llvm-svn: 152235
-
Benjamin Kramer authored
configure: Don't require a perl interpreter to be present, LLVM's buildsystem doesn't depend on perl anymore. llvm-svn: 152234
-
Chad Rosier authored
Original commit message: Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152233
-
Jakob Stoklund Olesen authored
Patch by Michael Liao! llvm-svn: 152232
-
Sebastian Redl authored
llvm-svn: 152231
-
Tobias Grosser authored
We now just check if the new scattering would create non-positive dependences. This is a lot faster than recalculating dependences (which is especially slow on tiled code). llvm-svn: 152230
-
Tobias Grosser authored
llvm-svn: 152229
-
Chandler Carruth authored
compilers. It seems that GCC 4.3 (and likely older) simply aren't going to do SFINAE on non-type template parameters the way Clang and modern GCCs do... Now we detect the implicit conversion to an integer type, and then blacklist classes, pointers, and floating point types. This seems to work well enough, and I'm hopeful will return the bots to life. llvm-svn: 152227
-
Timur Iskhodzhanov authored
llvm-svn: 152226
-
Chandler Carruth authored
traits. With this change, the pattern used here is *extremely* close to the pattern used elsewhere in the file, so I'm hoping it survives the build-bots. llvm-svn: 152225
-
Timur Iskhodzhanov authored
llvm-svn: 152224
-
Chandler Carruth authored
llvm-svn: 152221
-
Chandler Carruth authored
template argument and an *implicit* conversion from '0' to a null pointer. For some bizarre reason, GCC 4.3.2 thinks that the cast to '(T*)' is invalid inside of an enumerator's value... which it isn't but whatever. ;] This pattern is used elsewhere in the type_traits header and so hopefully will survive the wrath of the build bots. llvm-svn: 152220
-
Chandler Carruth authored
Deleting them because they aren't used. =D Yell if you need these, I'm happy to instead replace them with nice uses of the new infrastructure. llvm-svn: 152219
-
Chandler Carruth authored
This one is particularly annoying because the hashing algorithm is highly specialized, with a strange "equivalence" definition that subsets the fields involved. Still, this looks at the exact same set of data as the old code, but without bitwise or-ing over parts of it and other mixing badness. No functionality changed here. I've left a substantial fixme about the fact that there is a cleaner and more principled way to do this, but it requires making the equality definition actual stable for particular types... llvm-svn: 152218
-
Chandler Carruth authored
integral and enumeration types. This is accomplished with a bit of template type trait magic. Thanks to Richard Smith for the core idea here to detect viable types by detecting the set of types which can be default constructed in a template parameter. This is used (in conjunction with a system for detecting nullptr_t should it exist) to provide an is_integral_or_enum type trait that doesn't need a whitelist or direct compiler support. With this, the hashing is extended to the more general facility. This will be used in a subsequent commit to hashing more things, but I wanted to make sure the type trait magic went through the build bots separately in case other compilers don't like this formulation. llvm-svn: 152217
-
Richard Smith authored
llvm-svn: 152216
-
Bill Wendling authored
the DebugLoc information can be maintained throughout by grabbing the DebugLoc before the RemoveBranch and then passing the result to the InsertBranch. Patch by Andrew Stanford-Jason! llvm-svn: 152212
-
Richard Smith authored
analysis to make the AST representation testable. They are represented by a new UserDefinedLiteral AST node, which is a sugared CallExpr. All semantic properties, including full CodeGen support, are achieved for free by this representation. UserDefinedLiterals can never be dependent, so no custom instantiation behavior is required. They are mangled as if they were direct calls to the underlying literal operator. This matches g++'s apparent behavior (but not its actual mangling, which is broken for literal-operator-ids). User-defined *string* literals are now fully-operational, but the semantic analysis is quite hacky and needs more work. No other forms of user-defined literal are created yet, but the AST support for them is present. This patch committed after midnight because we had already hit the quota for new kinds of literal yesterday. llvm-svn: 152211
-
Andrew Trick authored
llvm-svn: 152210
-
Andrew Trick authored
llvm-svn: 152209
-
Andrew Trick authored
ScheduleDAG is responsible for the DAG: SUnits and SDeps. It provides target hooks for latency computation. ScheduleDAGInstrs extends ScheduleDAG and defines the current scheduling region in terms of MachineInstr iterators. It has access to the target's scheduling itinerary data. ScheduleDAGInstrs provides the logic for building the ScheduleDAG for the sequence of MachineInstrs in the current region. Target's can implement highly custom schedulers by extending this class. ScheduleDAGPostRATDList provides the driver and diagnostics for current postRA scheduling. It maintains a current Sequence of scheduled machine instructions and logic for splicing them into the block. During scheduling, it uses the ScheduleHazardRecognizer provided by the target. Specific changes: - Removed driver code from ScheduleDAG. clearDAG is the only interface needed. - Added enterRegion/exitRegion hooks to ScheduleDAGInstrs to delimit the scope of each scheduling region and associated DAG. They should be used to setup and cleanup any region-specific state in addition to the DAG itself. This is necessary because we reuse the same ScheduleDAG object for the entire function. The target may extend these hooks to do things at regions boundaries, like bundle terminators. The hooks are called even if we decide not to schedule the region. So all instructions in a block are "covered" by these calls. - Added ScheduleDAGInstrs::begin()/end() public API. - Moved Sequence into the driver layer, which is specific to the scheduling algorithm. llvm-svn: 152208
-
Andrew Trick authored
llvm-svn: 152207
-
Andrew Trick authored
ScheduleDAG has nothing to do with how the instructions are scheduled. llvm-svn: 152206
-
Andrew Trick authored
ScheduleDAG will not refer to the scheduled instruction sequence. llvm-svn: 152205
-
Andrew Trick authored
ScheduleDAG will not refer to the scheduled instruction sequence. llvm-svn: 152204
-
Andrew Trick authored
llvm-svn: 152203
-
Craig Topper authored
Use uint16_t to store InstrNameIndices in MCInstrInfo. Add asserts to protect all 16-bit string table offsets. Also make sure the string to offset table string is not larger than 65536 characters since larger string literals aren't portable. llvm-svn: 152202
-
Eli Friedman authored
llvm-svn: 152201
-