From 8040cd3cfd7b87661c08ca916daf355593dd8ffa Mon Sep 17 00:00:00 2001
From: Benjamin Kramer
In all cases, prefer spaces to tabs in source files. People have different -prefered indentation levels, and different styles of indentation that they +preferred indentation levels, and different styles of indentation that they like... this is fine. What isn't is that different editors/viewers expand tabs out to different tab stops. This can cause your code to look completely unreadable, and it is not worth dealing with.
@@ -491,7 +491,7 @@ most cases, you simply don't need the definition of a class... and not must include all of the header files that you are using -- you can include them either directly or indirectly (through another header file). To make sure that you don't -accidently forget to include a header file in your module header, make sure to +accidentally forget to include a header file in your module header, make sure to include your module header first in the implementation file (as mentioned above). This way there won't be any hidden dependencies that you'll find out about later... @@ -790,7 +790,7 @@ locality.Use the "assert" function to its fullest. Check all of your -preconditions and assumptions, you never know when a bug (not neccesarily even +preconditions and assumptions, you never know when a bug (not necessarily even yours) might be caught early by an assertion, which reduces debugging time dramatically. The "<cassert>" header file is probably already included by the header files you are using, so it doesn't cost anything to use diff --git a/docs/CommandLine.html b/docs/CommandLine.html index f14defc31f4..cefb6f882e3 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -1022,7 +1022,7 @@ files that use them. This is called the internal storage model.
code from the storage of the value parsed. For example, lets say that we have a '-debug' option that we would like to use to enable debug information across the entire body of our program. In this case, the boolean value -controlling the debug code should be globally accessable (in a header file, for +controlling the debug code should be globally accessible (in a header file, for example) yet the command line option processing code should not be exposed to all of these clients (requiring lots of .cpp files to #include CommandLine.h). @@ -1107,7 +1107,7 @@ a command line option. Look here for an example.These options fall into five main catagories:
+These options fall into five main categories:
It is not possible to specify two options from the same catagory (you'll get +
It is not possible to specify two options from the same category (you'll get a runtime error) to a single option, except for options in the miscellaneous -catagory. The CommandLine library specifies defaults for all of these settings +category. The CommandLine library specifies defaults for all of these settings that are the most useful in practice and the most common, which mean that you usually shouldn't have to worry about these.
@@ -1536,7 +1536,7 @@ not be available, it can't just look in argv[0]), the name of the environment variable to examine, the optional additional extra text to emit when the --help option is invoked, and the boolean -switch that controls whether reponse files +switch that controls whether response files should be read.cl::ParseEnvironmentOptions will break the environment diff --git a/docs/CompilerDriver.html b/docs/CompilerDriver.html index 9bc08aca163..5f62200d460 100644 --- a/docs/CompilerDriver.html +++ b/docs/CompilerDriver.html @@ -307,13 +307,13 @@ separate option groups syntactically.
-std=c99. It is also allowed to use spaces instead of the equality sign: -std c99. At most one occurrence is allowed.Also, there are a number of other limitations of the C backend that cause it to produce code that does not fully conform to the C++ ABI on most platforms. Some of the C++ programs in LLVM's test suite are known to fail - when compiled with the C back end because of ABI incompatiblities with + when compiled with the C back end because of ABI incompatibilities with standard C++ libraries.
@@ -700,7 +700,7 @@ Stop. portable is by using the preprocessor to include platform-specific code. In practice, information about other platforms is lost after preprocessing, so the result is inherently dependent on the platform that the preprocessing was - targetting. + targeting.Another example is sizeof. It's common for sizeof(long) to vary between platforms. In most C front-ends, sizeof is expanded to diff --git a/docs/GetElementPtr.html b/docs/GetElementPtr.html index 752568f831e..dd49ef7ec4c 100644 --- a/docs/GetElementPtr.html +++ b/docs/GetElementPtr.html @@ -40,7 +40,7 @@
This document seeks to dispel the mystery and confusion surrounding LLVM's GetElementPtr (GEP) instruction. Questions about the wiley GEP instruction are - probably the most frequently occuring questions once a developer gets down to + probably the most frequently occurring questions once a developer gets down to coding with LLVM. Here we lay out the sources of confusion and show that the GEP instruction is really quite simple.
diff --git a/docs/HowToReleaseLLVM.html b/docs/HowToReleaseLLVM.html index 70406099d02..7f18440504b 100644 --- a/docs/HowToReleaseLLVM.html +++ b/docs/HowToReleaseLLVM.html @@ -40,7 +40,7 @@LLVM is released on a time based schedule (currently every 6 months). We do not have dot releases because of the nature of LLVM incremental - developement philosophy. The release schedule is roughly as follows: + development philosophy. The release schedule is roughly as follows:
Once you have a reduced test-case, go to the LLVM Bug Tracking System and fill out the form with the necessary details (note that you don't -need to pick a catagory, just use the "new-bugs" catagory if you're not sure). +need to pick a category, just use the "new-bugs" category if you're not sure). The bug description should contain the following information:
diff --git a/docs/LangRef.html b/docs/LangRef.html index d07eeb8244b..1b1655e42fd 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -2019,7 +2019,7 @@ ClassificationsThe string 'undef' can be used anywhere a constant is expected, and - indicates that the user of the value may recieve an unspecified bit-pattern. + indicates that the user of the value may receive an unspecified bit-pattern. Undefined values may be of any type (other than label or void) and be used anywhere a constant is permitted.
@@ -2118,7 +2118,7 @@ number of reasons, but the short answer is that an undef "variable" can arbitrarily change its value over its "live range". This is true because the "variable" doesn't actually have a live range. Instead, the value is logically read from arbitrary registers that happen to be around when needed, -so the value is not neccesarily consistent over time. In fact, %A and %C need +so the value is not necessarily consistent over time. In fact, %A and %C need to have the same semantics or the core LLVM "replace all uses with" concept would not hold. @@ -2300,7 +2300,7 @@ has undefined behavior. the two digit hex code. For example: "!"test\00"".Metadata nodes are represented with notation similar to structure constants - (a comma separated list of elements, surrounded by braces and preceeded by an + (a comma separated list of elements, surrounded by braces and preceded by an exclamation point). For example: "!{ metadata !"test\00", i32 10}".
@@ -2619,8 +2619,8 @@ IfUnequal:The switch instruction specifies a table of values and destinations. When the 'switch' instruction is executed, this table is searched for the given value. If the value is found, control flow is - transfered to the corresponding destination; otherwise, control flow is - transfered to the default destination.
+ transferred to the corresponding destination; otherwise, control flow is + transferred to the default destination.Depending on properties of the target machine and the particular diff --git a/docs/LinkTimeOptimization.html b/docs/LinkTimeOptimization.html index 4bc92b24424..524a4e83ffd 100644 --- a/docs/LinkTimeOptimization.html +++ b/docs/LinkTimeOptimization.html @@ -166,7 +166,7 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific provided by the linker on various platform are not unique. This means, this new tool needs to support all such features and platforms in one super tool or a separate tool per platform is required. This increases - maintance cost for link time optimizer significantly, which is not + maintenance cost for link time optimizer significantly, which is not necessary. This approach also requires staying synchronized with linker developements on various platforms, which is not the main focus of the link time optimizer. Finally, this approach increases end user's build time due @@ -189,7 +189,7 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific user-supplied information, such as a list of exported symbols. LLVM optimizer collects control flow information, data flow information and knows much more about program structure from the optimizer's point of view. - Our goal is to take advantage of tight intergration between the linker and + Our goal is to take advantage of tight integration between the linker and the optimizer by sharing this information during various linking phases.
In some situations, it is desireable to build a single bitcode module from +
In some situations, it is desirable to build a single bitcode module from a variety of sources, instead of an archive, shared library, or bitcode library. Bitcode modules can be specified in addition to any of the other types of libraries by defining the MODULE_NAME diff --git a/docs/Passes.html b/docs/Passes.html index 8c408f45354..bb17bee77c3 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -1544,7 +1544,7 @@ if (X < 3) {
This file demotes all registers to memory references. It is intented to be the inverse of -mem2reg. By converting to - load instructions, the only values live accross basic blocks are + load instructions, the only values live across basic blocks are alloca instructions and load instructions before phi nodes. It is intended that this should make CFG hacking much easier. To make later hacking easier, the entry block is split into two, such diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index 4af64395287..68367de0bff 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -650,7 +650,7 @@ even if the source lives in multiple files.
The DEBUG_WITH_TYPE macro is also available for situations where you would like to set DEBUG_TYPE, but only for one specific DEBUG statement. It takes an additional first parameter, which is the type to use. For -example, the preceeding example could be written as:
+example, the preceding example could be written as:The list of BasicBlocks is the most commonly used part of Function objects. The list imposes an implicit ordering of the blocks in the function, which indicate how the code will be -layed out by the backend. Additionally, the first BasicBlock is the implicit entry node for the Function. It is not legal in LLVM to explicitly branch to this initial block. There are no implicit exit nodes, and in fact there may be multiple exit @@ -3682,7 +3682,7 @@ Superclasses: GlobalValue, User, Value
-Global variables are represented with the (suprise suprise) +
Global variables are represented with the (surprise surprise) GlobalVariable class. Like functions, GlobalVariables are also subclasses of GlobalValue, and as such are always referenced by their address (global values must live in memory, so their @@ -3732,7 +3732,7 @@ never change at runtime).
Returns the intial value for a GlobalVariable. It is not legal +
Returns the initial value for a GlobalVariable. It is not legal to call this method if there is no initializer.
The fields of debug descriptors used internally by LLVM diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index c9a7edbde86..f531a74a687 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -453,7 +453,7 @@ available, from the most general to the most specific.
When choosing a superclass for your Pass, you should choose the most specific class possible, while still being able to meet the requirements listed. This gives the LLVM Pass Infrastructure information necessary to -optimize how passes are run, so that the resultant compiler isn't unneccesarily +optimize how passes are run, so that the resultant compiler isn't unnecessarily slow.
References to variables are also quite simple using LLVM. In the simple version -of Kaleidoscope, we assume that the variable has already been emited somewhere +of Kaleidoscope, we assume that the variable has already been emitted somewhere and its value is available. In practice, the only values that can be in the NamedValues map are function arguments. This code simply checks to see that the specified name is in the map (if not, an @@ -362,7 +362,7 @@ definition of this function.
first, we want to allow 'extern'ing a function more than once, as long as the prototypes for the externs match (since all arguments have the same type, we just have to check that the number of arguments match). Second, we want to -allow 'extern'ing a function and then definining a body for it. This is useful +allow 'extern'ing a function and then defining a body for it. This is useful when defining mutually recursive functions.In order to implement this, the code above first checks to see if there is diff --git a/docs/tutorial/LangImpl4.html b/docs/tutorial/LangImpl4.html index 8310b61a75d..3188135384e 100644 --- a/docs/tutorial/LangImpl4.html +++ b/docs/tutorial/LangImpl4.html @@ -209,7 +209,7 @@ requires a pointer to the Module (through the ModuleProvider) to construct itself. Once it is set up, we use a series of "add" calls to add a bunch of LLVM passes. The first pass is basically boilerplate, it adds a pass so that later optimizations know how the data structures in the program are -layed out. The "TheExecutionEngine" variable is related to the JIT, +laid out. The "TheExecutionEngine" variable is related to the JIT, which we will get to in the next section.
In this case, we choose to add 4 optimization passes. The passes we chose diff --git a/docs/tutorial/OCamlLangImpl3.html b/docs/tutorial/OCamlLangImpl3.html index 0ba04ab8af2..a59887522ee 100644 --- a/docs/tutorial/OCamlLangImpl3.html +++ b/docs/tutorial/OCamlLangImpl3.html @@ -159,7 +159,7 @@ uses "the foo::get(..)" idiom instead of "new foo(..)" or "foo::Create(..)".
References to variables are also quite simple using LLVM. In the simple -version of Kaleidoscope, we assume that the variable has already been emited +version of Kaleidoscope, we assume that the variable has already been emitted somewhere and its value is available. In practice, the only values that can be in the Codegen.named_values map are function arguments. This code simply checks to see that the specified name is in the map (if not, an unknown @@ -323,7 +323,7 @@ code above.
first, we want to allow 'extern'ing a function more than once, as long as the prototypes for the externs match (since all arguments have the same type, we just have to check that the number of arguments match). Second, we want to -allow 'extern'ing a function and then definining a body for it. This is useful +allow 'extern'ing a function and then defining a body for it. This is useful when defining mutually recursive functions.