- Jan 10, 2012
-
-
David Blaikie authored
llvm-svn: 147855
-
- Jan 07, 2012
-
-
Benjamin Kramer authored
llvm-svn: 147738
-
- Dec 25, 2011
-
-
Venkatraman Govindaraju authored
llvm-svn: 147269
-
- Dec 20, 2011
-
-
Chandler Carruth authored
likely to stay either way that discussion ends up resolving itself. llvm-svn: 146966
-
-
- Dec 13, 2011
-
-
Chandler Carruth authored
undefined result. This adds new ISD nodes for the new semantics, selecting them when the LLVM intrinsic indicates that the undef behavior is desired. The new nodes expand trivially to the old nodes, so targets don't actually need to do anything to support these new nodes besides indicating that they should be expanded. I've done this for all the operand types that I could figure out for all the targets. Owners of various targets, please review and let me know if any of these are incorrect. Note that the expand behavior is *conservatively correct*, and exactly matches LLVM's current behavior with these operations. Ideally this patch will not change behavior in any way. For example the regtest suite finds the exact same instruction sequences coming out of the code generator. That's why there are no new tests here -- all of this is being exercised by the existing test suite. Thanks to Duncan Sands for reviewing the various bits of this patch and helping me get the wrinkles ironed out with expanding for each target. Also thanks to Chris for clarifying through all the discussions that this is indeed the approach he was looking for. That said, there are likely still rough spots. Further review much appreciated. llvm-svn: 146466
-
- Dec 12, 2011
-
-
Daniel Dunbar authored
subdirectories to traverse into. - Originally I wanted to avoid this and just autoscan, but this has one key flaw in that new subdirectories can not automatically trigger a rerun of the llvm-build tool. This is particularly a pain when switching back and forth between trees where one has added a subdirectory, as the dependencies will tend to be wrong. This will also eliminates FIXME implicitly. llvm-svn: 146436
-
Daniel Dunbar authored
llvm-svn: 146409
-
- Dec 07, 2011
-
-
Evan Cheng authored
generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026
-
- Dec 03, 2011
-
-
Venkatraman Govindaraju authored
AnalyzeBranch doesn't change the successor, just the order. llvm-svn: 145779
-
- Dec 02, 2011
-
-
Nick Lewycky authored
change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. llvm-svn: 145714
-
- Nov 29, 2011
-
-
Daniel Dunbar authored
llvm-svn: 145420
-
- Nov 16, 2011
-
-
Evan Cheng authored
and code model. This eliminates the need to pass OptLevel flag all over the place and makes it possible for any codegen pass to use this information. llvm-svn: 144788
-
- Nov 12, 2011
-
-
Daniel Dunbar authored
build: Attempt to rectify inconsistencies between CMake and LLVMBuild versions of explicit dependencies. - The hope is that we have a tool/test to verify these are accurate (and tight) soon. llvm-svn: 144444
-
- Nov 11, 2011
-
-
Daniel Dunbar authored
LLVMBuild: Add explicit information on whether targets define an assembly printer, assembly parser, or disassembler. llvm-svn: 144344
-
- Nov 10, 2011
-
-
Daniel Dunbar authored
handle defining the "magic" target related components (like native, nativecodegen, and engine). - We still require these components to be in the project (currently in lib/Target) so that we have a place to document them and hopefully make it more obvious that they are "magic". llvm-svn: 144253
-
Daniel Dunbar authored
- Gives us a place to hang target specific metadata (like whether the target has a JIT). llvm-svn: 144250
-
- Nov 08, 2011
-
-
Pete Cooper authored
When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses llvm-svn: 144100
-
- Nov 06, 2011
-
-
Benjamin Kramer authored
llvm-svn: 143891
-
- Nov 04, 2011
-
-
Daniel Dunbar authored
added a layer of indirection with no value (not even conciseness). llvm-svn: 143727
-
- Nov 03, 2011
-
-
Daniel Dunbar authored
llvm-svn: 143634
-
- Oct 06, 2011
-
-
Peter Collingbourne authored
llvm-svn: 141266
-
- Aug 24, 2011
-
-
Evan Cheng authored
These are strictly utilities for registering targets and components. llvm-svn: 138450
-
- Aug 23, 2011
-
-
Evan Cheng authored
from MC. llvm-svn: 138367
-
- Aug 01, 2011
-
-
Chandler Carruth authored
TableGen deps introduced in r136023. This completes the fixing that dgregor started in r136621. Sorry for missing these the first time around. This should fix some of the random race-condition failures people are still seeing with CMake. llvm-svn: 136643
-
- Jul 29, 2011
-
-
Chandler Carruth authored
specified in the same file that the library itself is created. This is more idiomatic for CMake builds, and also allows us to correctly specify dependencies that are missed due to bugs in the GenLibDeps perl script, or change from compiler to compiler. On Linux, this returns CMake to a place where it can relably rebuild several targets of LLVM. I have tried not to change the dependencies from the ones in the current auto-generated file. The only places I've really diverged are in places where I was seeing link failures, and added a dependency. The goal of this patch is not to start changing the dependencies, merely to move them into the correct location, and an explicit form that we can control and change when necessary. This also removes a serialization point in the build because we don't have to scan all the libraries before we begin building various tools. We no longer have a step of the build that regenerates a file inside the source tree. A few other associated cleanups fall out of this. This isn't really finished yet though. After talking to dgregor he urged switching to a single CMake macro to construct libraries with both sources and dependencies in the arguments. Migrating from the two macros to that style will be a follow-up patch. Also, llvm-config is still generated with GenLibDeps.pl, which means it still has slightly buggy dependencies. The internal CMake 'llvm-config-like' macro uses the correct explicitly specified dependencies however. A future patch will switch llvm-config generation (when using CMake) to be based on these deps as well. This may well break Windows. I'm getting a machine set up now to dig into any failures there. If anyone can chime in with problems they see or ideas of how to solve them for Windows, much appreciated. llvm-svn: 136433
-
- Jul 28, 2011
-
-
Eli Friedman authored
llvm-svn: 136283
-
- Jul 26, 2011
-
-
Chandler Carruth authored
The first problem to fix is to stop creating synthetic *Table_gen targets next to all of the LLVM libraries. These had no real effect as CMake specifies that add_custom_command(OUTPUT ...) directives (what the 'tablegen(...)' stuff expands to) are implicitly added as dependencies to all the rules in that CMakeLists.txt. These synthetic rules started to cause problems as we started more and more heavily using tablegen files from *subdirectories* of the one where they were generated. Within those directories, the set of tablegen outputs was still available and so these synthetic rules added them as dependencies of those subdirectories. However, they were no longer properly associated with the custom command to generate them. Most of the time this "just worked" because something would get to the parent directory first, and run tablegen there. Once run, the files existed and the build proceeded happily. However, as more and more subdirectories have started using this, the probability of this failing to happen has increased. Recently with the MC refactorings, it became quite common for me when touching a large enough number of targets. To add insult to injury, several of the backends *tried* to fix this by adding explicit dependencies back to the parent directory's tablegen rules, but those dependencies didn't work as expected -- they weren't forming a linear chain, they were adding another thread in the race. This patch removes these synthetic rules completely, and adds a much simpler function to declare explicitly that a collection of tablegen'ed files are referenced by other libraries. From that, we can add explicit dependencies from the smaller libraries (such as every architectures Desc library) on this and correctly form a linear sequence. All of the backends are updated to use it, sometimes replacing the existing attempt at adding a dependency, sometimes adding a previously missing dependency edge. Please let me know if this causes any problems, but it fixes a rather persistent and problematic source of build flakiness on our end. llvm-svn: 136023
-
- Jul 23, 2011
-
-
Evan Cheng authored
llvm-svn: 135826
-
- Jul 22, 2011
-
-
Evan Cheng authored
InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC. llvm-svn: 135812
-
- Jul 20, 2011
-
-
Evan Cheng authored
- Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. llvm-svn: 135580
-
- Jul 19, 2011
-
-
Evan Cheng authored
(including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. llvm-svn: 135468
-
Evan Cheng authored
better location welcome). llvm-svn: 135438
-
- Jul 18, 2011
-
-
Evan Cheng authored
to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
-
Chris Lattner authored
llvm-svn: 135375
-
- Jul 15, 2011
-
-
Evan Cheng authored
solution but it is a small step towards removing the horror that is TargetAsmInfo. llvm-svn: 135237
-
Evan Cheng authored
Rename createAsmInfo to createMCAsmInfo and move registration code to MCTargetDesc to prepare for next round of changes. llvm-svn: 135219
-
- Jul 14, 2011
-
-
Evan Cheng authored
registeration and creation code into XXXMCDesc libraries. llvm-svn: 135184
-
- Jul 11, 2011
-
-
Evan Cheng authored
and MCSubtargetInfo. - Added methods to update subtarget features (used when targets automatically detect subtarget features or switch modes). - Teach X86Subtarget to update MCSubtargetInfo features bits since the MCSubtargetInfo layer can be shared with other modules. - These fixes .code 16 / .code 32 support since mode switch is updated in MCSubtargetInfo so MC code emitter can do the right thing. llvm-svn: 134884
-
- Jul 09, 2011
-
-
Evan Cheng authored
CPU, and feature string. Parsing some asm directives can change subtarget state (e.g. .code 16) and it must be reflected in other modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance must be shared. llvm-svn: 134795
-